java中Exception与Error介绍
@(Java)
1.异常层次结构
- Error与Exception都继承自Throwable。
- Exctption分为Runtime Exception与Checked Exception(已检查异常)。
- Runtime Exception与Error及其子类又名为Unchecked Exception(未检查异常)。
2.Error
Error体系描述了Java运行系统中的内部错误以及资源耗尽的情形。如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。应用程序不应该抛出这种类型的对象。如果出现了内部错误,除了通告给客户,并尽力使程序安全地终止之外,再也无能为力了。这种情况很少见。
3.Exception
Exception类表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意终止异常。Exception划分为两个分支:
- 由程序错误导致的异常属于RuntimeExcepion。例如NullPointerException等未受检查的异常。
- 而程序本身没有问题,通常由应用环境引起的外部问题所引发的异常。例如IOException等受检查的异常。
3.1RuntimeException
派生于RuntimeException的异常包含下面几种情况:
- 错误的类型转换
- 数组访问越界
- 访问空指针
可以认为:若是出现了RuntimeException异常,那么就一定是程序自身的问题。
3.2CheckedException
不是派生于RuntimeException的已检查异常包含:
- 试图在文件尾部后面读取数据
- 试图打开一个不存在的文件
- 试图根据给定的字符串查找Class对象,而这个字符串表示的类并不存在
可以认为:这并非是程序自身问题,而是应用环境引起的外部问题。
4.参考
《Java核心技术 卷1 基础知识(原书第9版)》
http://blog.csdn.net/zdwzzu2006/article/details/6568600
http://blog.csdn.net/lifengguo_njupt/article/details/7990485
http://blog.csdn.net/goodlixueyong/article/details/47122487