Kosmos Kosmos

---我们总得选择一条路去前行---

目录
学习笔记|异常体系
/    

学习笔记|异常体系

异常的继承图

12130Q1234I6223.jpg
从继承图中可以看出来ExceptionThrowable的继承类

异常的分类

Throwable分为ErrorException

  • Error:OutOfMemoryError,StackOverFlowError
  • Exception:RuntimeException(UnCheckedException 运行时异常)和CheckedException(受检异常)
    • RuntimeException:NullPointerException,IndexOutOfBroudsException等,一般由程序的逻辑代码产生,一般不抛出或者显示的声明这种异常,而是尽力去减少这种异常的产生,可以避免.
    • CheckedException:代码中需要显示处理的异常,不处理这种异常的话编译会出错,如SQLException,IOException,ClassNotFoundException

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这个方法的时候可能会抛出异常,由调用该方法的程序处理这个异常


标题:学习笔记|异常体系
作者:ellenbboe
地址:https://ellenbboe.github.io/articles/2019/07/24/1563974945220.html