首页  >  文章  >  Java  >  检查型异常和非检查型异常的比较

检查型异常和非检查型异常的比较

零下一度
零下一度原创
2017-07-20 10:34:261689浏览
对于因为编程错误而导致的异常,或者是不能期望程序捕获的异常(解除引用一个空指针,数组越界,除零,等等),为了使开发人员免于处理这些异常,一些异常被命名为非检查型异常(即那些继承自 RuntimeException 的异常)并且不需要进行声明。
 
1、检查性异常: JAVA编译器强制要求用try{}catch(){}块进行处理,如果不处理则必须在包含可能发生异常的代码的方法上用throws显示地抛出异常,由调用该方法的方法catch捕捉处理异常,否则程序编译不会通过,会有红叉提示。
如:

 

 

这里必须要用try  catch块将代码包围起来或者throws显式 抛出异常,否则编译不会通过。
 
2、非检查性异常:JAVA编译器可以通过的异常,可以用try{}catch(){}进行处理,处理过后程序可以继续向下执行,也可以不处理,由调用它的方法进行处理。当然,也可以一直不处理,到了最上层,多线程的话线程会终止,单线程的话主程序会终止,也就是说运行时异常如果一直不进行处理,则会起到使程序停止的作用。
如:
 
这里虽然抛出了异常,但只是阻止程序继续运行,并不会编译报错,无需在方法上用throws语句显式抛出异常。

以上是检查型异常和非检查型异常的比较的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn