异常的定义(注意)
1.在Java语言中,将程序执行中发生的不正常情况称为“异常”,
2.注意:必须是程序执行过程中,开发过程中的语法错误和逻辑错误不是异常
异常的种类
1.Error:Java虚拟机无法解决的严重问题比如:StackOverflowError和OOM,不编写针对性的代码进行处理
2.Exception:因编程错误或者 外部因素导致的问题,一般要处理
空指针访问
试图读取不存在的文件
网络连接中断
数组角标越界
Exception的分类
1.运行时异常(可以不处理,编译器默认通过,都是在java代码方面的)
可以不处理的原因:
1.这类异常很普遍,若全处理可能会对程序的可读性和运行效率产生影响。
2.一般是指编程时的逻辑错误,是程序员应该积极避免其出现的异常
例子:空指针异常,数组下标越界,类型转化异常...
2.编译时异常(必须处理,不然编译器不通过,是外部因素)
必须处理的原因
1.由于外部因素产生的异常,无法编码避免,只要写代码就可能会出现,如文件无法找到异常,你写关于文件的代码就可能出现
2.如果程序不处理,可能会带来意想不到的结果
例子:类未找到异常,IO异常(文件,java与外部 通道 方面的)
3.运行时和编译时异常的出现都是在运行期
4.异常发生了,要么处理,不处理就会终止程序
异常什么时候出现
1.手动抛出异常
2.自己写的代码出现了异常,那么jvm会自动抛出相对应的异常
什么异常必须处理
编译时异常及其子类,必须处理,处理的方式
异常处理的几种方式
1.try catch
2.throws上一级,必须得throws到main才行,不然还是在上一级得try catch
3.springboot的 异常处理机制
4.第三方异常处理如jsr校验,BindingResult result能够接受异常信息