学习笔记 | 异常体系

本贴最后更新于 1932 天前,其中的信息可能已经时过境迁

异常的继承图

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

  • 笔记

    好记性不如烂笔头。

    308 引用 • 793 回帖 • 1 关注
  • 异常
    20 引用 • 47 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...