码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA异常知识总结

时间:2016-03-20 01:58:59      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:

首先贴上JAVA常见的异常类之间的继承关系图

技术分享

由图可以看出,基类为Throwable,Error和Exception类继承Throwable,Error下细分为AWTError(不太清楚),IOError(输入输出类),LinkageError(常见于JAR包冲突),ThreadDeath(线程类)。

Error由虚拟机生成并抛出,属于JVM系统内部错误或者资源耗尽等严重情况(程序无法处理的错误),属于JVM担负的责任,因而这类异常事件的发生后无法恢复或者无法对其进行捕获,error产生后最终将导致应用程序中断(JVM执行线程中断)。但是ERROR在某种场合下可以进行转译,即ERROR可以转译为Exception或者RuntimeException,从而挽回Error产生所带来的严重负面影响。

而Exception类下类别则非常多,首先分为两大类:RuntimeException以及非RuntimeException,(对应着Unchecked Exception以及Checked Exception)

RuntimeException类是Exception类的子类,它叫做运行时异常,Java中的所有运行时异常都会直接或者间接地继承自RuntimeException类。对于运行时异常(runtime exception)可以对其进行处理,也可以不处理。推荐不对运行时异常进行处理。

非RuntimeException:Java中凡是继承自Exception,而不继承自RuntimeException类的异常都是非运行时异常。一般来说,非RuntimeException一般都是外部错误,其必须给try{}catch...finally语句块捕获异常。也可以在可能发生该类型异常的方法写上throws 某一个Exception类型,如throws Exception,将异常抛出到外面一层去,可能最终由JVM进行处理。(如最常见的文件读写,数据库读写等操作)

 

JAVA异常知识总结

标签:

原文地址:http://www.cnblogs.com/qq29oo/p/5296988.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!