参考资料:“java核心技术卷I”
异常由Throwable的继承而来,而异常又分为错误和异常两类,异常又有两个分支,一个分支派生于RuntimeException的,另一分支包含其他异常由程序错误导致的异常属于RuntimeException的;而程序本身没有问题,但由于像I / O错误这类问题导致的异常属于其他异常(运行程序的环境出了问题,如试图打开一个不存在的文件)。在java的语法规范将错误类或RuntimeException的类的异常称为非受查(未选中)异常,其他的异常称为受查(选中)异常。
对异常的处理有两种:(1)直接抛出;
(2)先行捕获,再做详细处理;
非受查异常不需要进行捕获,直接抛出。受查异常需要捕获。
直接抛出是以关键字抛出抛出异常如下:
捕获需要设置的try / catch语句块。尝试语句块中的是正常执行但有可能生成异常的代码,若遇到异常赶上语句块会进行捕获,捕获到异常后按赶上语句块中代码执行如下:
上文中的ArithmeticException异常继承自RuntimeException的,属于未选中,本不需要捕获,之所以采取捕获为了方便两个例子进行比较。
注:不要为了使用异常而使用异常!