异常处理机制
一、异常的处理:抓抛模型。
"抛":程序在正常执行的过程中,一旦出现异常,就会在异常代码中生成一个对应异常类的对象。并将此对象抛出,一旦抛出对象以后,其后的代码就不在执行。 "抓":可以理解为异常的处理方式:1、try-catch-finally 2、throws
二、try-catch-finally的使用。
try { //可能出现异常的代码 }catch (异常类型1){ //对异常进行的处理1 }catch (异常类型2){ //对异常进行的处理2 }finally { //一定会执行的代码 }
对于以上格式,无论是否发生异常(除特殊情况外),finally 语句块中的代码都会被执行。此外,finally 语句也可以和 try 语句匹配使用,其语法格式如下:
try { // 逻辑代码块 } finally { //一定会执行的代码 }
使用 try-catch-finally 语句时需注意以下几点:
1、异常处理语法结构中只有 try 块是必需的,也就是说,如果没有 try 块,则不能有后面的 catch 块和 finally 块; 2、catch 块和 finally 块都是可选的,但 catch 块和 finally 块至少出现其中之一,也可以同时出现; 3、可以有多个 catch 块,捕获父类异常的 catch 块必须位于捕获子类异常的后面; 4、不能只有 try 块,既没有 catch 块,也没有 finally 块; 5、多个 catch 块必须位于 try 块之后,finally 块必须位于所有的 catch 块之后。 6、finally 与 try 语句块匹配的语法格式,此种情况会导致异常丢失,所以不常见。
三、throws。
定义一个方法的时候可以使用throws关键字声明。使用throws关键字声明的方法表示此方法不处理异常,而交给方法调用处进行处理。 throws关键字格式: public 返回值类型 方法名称(参数列表,,,)throws 异常类{};
4、自定义异常抛出(throw)。
如果需要在程序中自行抛出异常,则应使用 throw 语句,throw 语句可以单独使用,throw 语句抛出的不是异常类,而是一个异常实例,而且每次只能抛出一个异常实例。

浙公网安备 33010602011771号