异常/Exception类型原理
java异常的层次结构图:
throwable分为Error、Exception
·Error
·JVM内部问题,比如资源不足等,无法恢复
·处理方式:不用处理
·Exception
·JVM通过处理可回到正常执行流程,即:可修复
·分为unchecked Exception(非受检异常)、checked Exception(受检异常)
注:RuntimeException(非受检异常):处理或者不处理都可以(不需要try。。catch进行异常处理)
其他Exception异常需要进行(try。。。catch异常处理)
为什么要对其他的Exception进行异常区分呢?
java针对可预见可恢复的情况进行妥善处理,同时确保程序在出现严重错误可预见的情况提供更多的错误信息,而不必将错误处理代码散布在各个代码片段,提高了代码的健壮性和可维护性
CheckException(受检查异常):
1、强制处理:java编译器强制要求程序员在编写代码时显示处理这类异常,即必须使用try-catch捕获该异常,或在方法名上声明该方法可能会抛出异常,通过throw关键字
Unchecked Exception(运行时异常/非受检查异常):
- 不强制处理:编译器不会强制程序员为这类异常编写处理代码。也就是说,即使代码里可能出现运行时异常,编译仍然能通过
Static关键字
static还没消化。。。明天再总结