一、异常概述
在Java中,这种在程序运行时可能出现的一些错误称为异常。异常是一个在程序执行期间发生的事件,它中断了正在执行的程序的正常指令流。
例题9.1
出现异常:不能被零整除,算法异常
修改过后:
二、异常的抛出与捕捉
Java中,如果某个方法抛出异常,既可以在当前方法中进行捕捉,而后处理该异常,也可以将异常向上抛出,交由方法调用者处理。
2.1抛出异常
例题9.2
结果显示
修改后9.2代码
3.捕捉异常
try{
//代码块
}catch (Exceptiontype1){
catch (xceptiontype2)
}
....
finally{
//程序代码块}
语法
try-catch语句块
例题9.3
结果显示:
三、Java常见的异常类(红色为常用项)
四、自定义异常
使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此以外,用户只需要继承Exception类即可自定义异常类。在程序中使用自定义异常类,大体可以为以下几个步骤:
(1)创建自定义异常类。
(2)在方法中通过throw关键字抛出异常对象。
(3)如果在当前抛出异常的方法处理异常,可以使用try-catch语句块捕获并处理,否则在方法的声明处通过throw关键字指明要抛出给方法调用者的异常,继续进行下一步操作。
(4)在出现异常的方法的调用者中捕获并处理异常。
例题9.4:如何创建自定义异常
例题9.5:自定义异常的抛出与捕捉
五、在方法中抛出异常 :
若某个方法可能会发生异常,但不想在当前方法中处理这个异常,则可以使用throws、throw关键字在方法中抛出异常。
5.1使用throws关键字抛出异常:throw关键字通常被应用声明方法时,用来指定方法可能抛出的异常。多个异常可使用逗号分隔。
例题9.6:指明异常起源于何处
5.2使用throw关键字抛出异常:使用 throw 关键字抛出异常
程序在执行到 throw 语句时立即终止,throw 关键字通常用于方法体中,并且抛出一个异常对象。它后面的语句都不执行。通过 throw 抛出异常后,如果想在上一级代码中捕获并处理异常,则需要在抛出异常的方法中使用 throws 关键字在方法的声明中指明要抛出的异常;如果要捕捉 throw 抛出的异常,则必须使用try-catch语句块。
例题9.7:创建自定义异常
例题9.8:使用throw关键字捕捉自定义异常
六、运行时异常
七、异常的使用原则
7.异常的使java异常强制用户去考虑程序的强健性和安全性。异常处理不应用来控制程序的正常流程,其主夏作用是捕获程序在运行时发生的异常并进行相应的处理。编写代码处理某个方法可能出现的异常时可遵循以下几条原则:
1.在当前方法声明中使用try-catch语句捕获异常
2.一个方法被覆盖时,覆盖它的方法必须抛出相同的异常或异常的子类
3.如果父类抛出多个异常,则覆盖方法必须抛出那些异常的一个子集,不能抛出新异常.