1.异常
定义:在程序运行过程中出现的错误,称为异常
。异常就是程序运行过程中出现了不正常现象导致程序的中断。
在Java中,把各种异常现象进行了抽象形成了异常类。
2.异常分类
-
检查性异常:这种异常属于一般性异常,出现了这种异常必须显示的处理,不显示处理java程序将无法编译通过。编译器强制普通异常必须try…catch处理,或用
throws
声明继续抛给上层调用方法处理,所以普通异常也称为checked异常
-
运行时异常:也即是运行时异常(RuntimeException),这种系统异常可以处理也可以不处理,所以编译器不强制用try…catch处理或用throws声明,所以系统异常也称为unchecked异常。
此种异常可以不用显示的处理,例如被0除异常,java没有要求我们一定要处理, 当出现这种异常时,肯定是程序员的问题,也就是说,健壮的程序一般不会出现这种系统异常。
-
错误:错误不是异常
3.异常体系结构
4.异常处理
-
try:监控区域内的异常,并捕获异常
-
catch:接收try的异常然后执行catch里的代码,参数为捕获异常对象的类型,可以捕获多个异常即一个try多个catch,注意要把范围大的放在后面
-
throw :主动抛出异常,一般在方法中使用
-
finally:不管是否捕获异常,都会执行finally里面的代码,try... catch必须有,但是finally不一定
-
throws:当方法中处理不了异常时,在方法上使用,抛出该异常
5.自定义异常
步骤:
-
创建自定义异常类
-
方法中通过throw关键字抛出对象
-
如果在当前异常类中处理异常则通过try...catch捕获并处理异常,否则通过throws抛出异常,然后下一步
-
在出现异常方法的调用者中捕获并处理异常