异常的定义和分类
异常
异常分类:
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);如果方法没有声明所有可能发生的已检查异常,编译器就会给出一个错误信息。