学习笔记-异常体系
异常的继承图

从继承图中可以看出来Exception是Throwable的继承类
异常的分类
Throwable分为Error和Exception
- Error:
OutOfMemoryError,StackOverFlowError等 - Exception:
RuntimeException(UnCheckedException 运行时异常)和CheckedException(受检异常) -
- RuntimeException:
NullPointerException,IndexOutOfBroudsException等,一般由程序的逻辑代码产生,一般不抛出或者显示的声明这种异常,而是尽力去减少这种异常的产生,可以避免.
- RuntimeException:
-
- CheckedException:代码中需要显示处理的异常,不处理这种异常的话编译会出错,如
SQLException,IOException,ClassNotFoundException
- CheckedException:代码中需要显示处理的异常,不处理这种异常的话编译会出错,如
Exception和Error的区别
Exception是程序本身可以处理的异常
Error(致命)是程序无法处理,表示出现了不可控的错误,有Java的虚拟机产生和抛出,不可控,在编译的时候检查不到Error的存在
异常的处理
try-catch-finally
finally是在return语句后执行的,是为了做后续工作,例如释放连接,关闭流,因为finally代码块无论如何都要执行,所以不要在finally中使用return语句
catch的时候从上往下异常类逐渐变大,从子类异常到父类异常,如果有匹配的catch,它就会忽略掉这个catch后面所有的catch.
throw
抛出一个异常,动词
throw new Exception()表示抛出一个异常
throws
声明一个方法可能抛出的异常,是一种示意
public void f() throws oneException表示在调用f这个方法的时候可能会抛出异常,由调用该方法的程序处理这个异常
浙公网安备 33010602011771号