异常处理
1.异常的概述
在程序运行时发生的事件,中断了正在执行的程序的正常指令流称为异常。
2.异常的处理
两种方式:
1.在当前方法中进行捕捉,然后处理该异常
2.直接将异常向上抛出,由方法的调用者来处理(这种方法是不负责任的方法)
2.1捕捉异常
异常的捕捉由 try 、 catch 、finally 3部分组成
try 语句块存放的是可能发生异常的Java语句
catch程序块在try语句块之后,用来激发被捕获的异常
finally语句块是异常处理结构的最后执行部分,无论try语句块中的代码如何退出 , 都将执行finally语句块。
执行逻辑:
当try语句发生异常时,程序就会调转到catch代码块中执行,执行完catch代码块中的程序代码后,将继续执行catch代码块后的其他代码,而不会执行try代码块中发生异常语句后面的代码,最后一定会执行finally语句,当整个try、catch、finally执行完成后,还有代码就继续接着执行。
注意:在下面4中特殊情况下,finally块不会被执行
1.finally语句块中发生异常
2.在前面的代码中使用了System.exit()退出程序
3.程序所有的线程死亡
4.关闭CPU
2.2Java常见异常
2.3自定义异常
步骤:
1.创建自定义异常类
2.在方法中通过throw关键字抛出异常
3.如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理,否则在方法中的声明处通过throws关键字指明要抛出给方法调用者的异常,继续下一步操作
4.在出现异常方法的调用者中捕获并处理异常。
2.4抛出异常
使用throws关键字将异常抛给上一级后,如果不想处理该异常,可以继续向上抛出,但最终要有能够处理该异常的代码。