异常概念

来源:互联网 发布:c语言入门自学书 编辑:程序博客网 时间:2024/06/13 16:04

当程序出现错误时,抛出异常比终止程序更灵活。这是因为可以提供一个捕获异常的处理器,来对异常进行处理。

处理错误的常用手段:

*返回之前的某个安全状态,并允许执行其他的命令

*允许用户保存操作结果,并以妥善的方式结束程序

1.异常分类



在Java中所有异常都是派生于 Throwable类的一个实例

Error类错误:是指由于Java虚拟机错误或者内存耗尽错误。出现这种错误除了通告用户,尽可能的推出程序外便无能为力

Exception: 由于程序错误或者外界环境因素导致的异常


出现Runtime Exception 一定是编写的程序出现错误

其他异常 :程序本身没有问题,如IO导致的异常


Java语言规范将Runtime Exception和Error类的所有异常称为非受查异常,而将其他异常称为受查异常。编译器将查看是否为所有受查异常提供处理器。

为什么这么分呢? 

个人理解 :Java 中由于程序错误 引起的异常 更多的应该避免,而不是将时间浪费在处理这些程序错误导致的异常。同样Error类错误发生时,我们什么也做不了,更不需要采取什么措施。 而像 由于环境因素而引起的异常,如访问的文件是否存在 。这些不是程序自身所能决定的问题就需要弄明白到底哪里出现错误,该采取什么行为 。


2.声明受查异常

抛出异常:

*当调用一个抛出异常的方法时   (受查异常)

*程序运行过程发生错误时(受查异常)

*程序错误Runtime Exception)

*Java虚拟机和运行时库出现内部错误 Error



如果方法没有声明方法中可能出现的所有受查异常,编译器就会产生一个错误信息。同时,除了声明异常外,还可以捕获异常,这样可以使异常不被抛到方法外,也不需要throws规范


3捕获异常

如果某个异常发生时,而没有异常处理器进行捕获,则原程序或者说该线程就会被终止 ,并在控制台上打印出异常信息

原创粉丝点击