异常
-
定义:一种对错误的识别及相应的机制
-
异常(Throwable)的分类:
-
Exception(平时说的)
-
Error
-
-
Exception
-
非运行时异常(非RuntimeException):指程序编译时需要捕获或处理的异常
-
EOFException
-
FileNotFoundException
-
-
运行时异常(RuntimeException):指程序编译时不需要捕获或处理的异常
-
ArrithmeticException
-
MissingResourceException
-
ClassNotFoundException
-
NullPointerException
-
IllegalArgumentException
-
ArrayIndexOutOfBoundException
-
UnkownTypeException
-
-
-
捕获和处理异常
-
throws
-
传递性
-
能抛出更大的异常
-
多个抛出用,分割,不区分顺序
-
覆写里,子类不能比父类抛出更大的异常
-
-
try … catch(捕获和处理异常)
-
语法:
try{ //高危代码 }catch(异常类类名 形参){ //异常的处理 }
注意:
抛出的一般是非运行异常
-
如果try中的高危代码报错,其下方代码不再执行,直接执行catch中的代码
-
如果try中的高危代码不报错,catch不执行
-
catch要想执行,需要捕获对应的异常
-
可以写多个catch,但是写的顺序需要注意,需要从小到大
-
可以使用父类,或者直接写Exception
-
-
-
try … catch进阶用法
-
jdk1.7,自动关闭IO资源流
try(打开的资源流){ //高危代码 }catch(异常类类名 形参名){ //处理方法 } //自动关闭,不需要手动调用close()
-
finally,和try … catch连用,必会执行的代码
-
final只有一种情况不执行:System.exit(0)
-
-
-
自定义异常
定义:
-
先创建一个类,这个类需要继承已知的异常类,一般继承Exception
-
需要定义一个公有的无参构造
-
需要定义一个公有的有参构造,调用父类的构造方法,把参数传进去
-
-