异常的定义和分类

异常

异常分类:

Java中,异常对象都是派生于Throwable类的一个实例。Java内置的异常类,不能满足需求,可以自己创建异常类

Throwable分成2个分支:Error和Exception。

Error 类描述了java运行时系统的内部错误和资源耗尽错误。应用程序不应该抛出这样的错误。

Exception划分2个分支:一个分支派生于RuntimeException;另一个分支包含其他异常。划分2个分支的规则是:由程序错误导致的异常属于RuntimeException;而程序本身没有问题,但由于像i/o错误这问题导致的异常属于其他异常。

派生于RuntimeException的异常包括:

错误的类转换。

数组访问越界。

访问空指针。

不是派生于RuntimeException的异常包括:

试图在文件尾部读取数据;

试图打开一个不存在的文件;

试图根据给定的字符串查找Class对象,而这个字符串对象不存在;

Java语言规范将派生于Error类和RuntimeExeption类的所有异常称为未检查(unchecked)异常,所有的其他的异常称为已检查(checked)异常。编译器将核查是否,为所有的已检验异常提供了异常处理器。

总之,一个方法必须声明所有可能抛出的已检测的异常。而未检查异常要么不可控制(Error),

要么就应该避免发生(RuntimeException);如果方法没有声明所有可能发生的已检查异常,编译器就会给出一个错误信息。

原文地址:https://www.cnblogs.com/bangchen/p/7382259.html