您的位置:首页 > 编程语言 > Java开发

Java异常处理机制

2016-10-18 19:39 267 查看

Java异常处理机制

####Java异常类结构:



#### Java异常关键字的简单介绍

​ Java主要利用try、catch、finally、throw、throws这五个关键字处理异常

​ try{}:将要可能产生异常的代码放入try{}中。

​ catch(){}:将(异常类型 引用名)放入()中,将产生此种异常后的执行代码放入{}内。由上可知:我们将可能产生异常的代码放入try{}中,运行程序当程序出现异常时,catch捕捉特定的某种异常,捕捉到后执行catch代码块中的代码。程序可能会出现不同的异常所以我们可以使用多个catch去捕捉。

​ finally{}:主要用于回收在try块里打开的物力资源(如数据库连接、网络连接和磁盘文件)(即主要存放 对象.close()方法),异常机制总是保证finally块总是被执行。只有finally块,执行完成之后,才会回来执行try或者catch块中的return语句,如果finally中使用了return,则就不会跳回执行,直接停止。

​ throw:用于抛出某种实际的异常。

​ throws:用于声明方法中,表示该方法可能抛出XX类异常

#### Java处理异常的步骤:

Java处理异常的步骤我们用范例来说明。见如下范例:

public class FinallyAndReturn {
public void flow(int i) {

try {
System.err.print("1-->");
System.err.print("2-->");
if (i == 3) {
return;
}
throwExcep(i);
System.err.print("4-->");

} catch (IOException gfw) {
System.err.print("5.1-->");
return;
} catch (SQLException e) {
System.err.print("5.2-->");

} catch (Exception e) {
System.err.print("5.3-->");

} finally {
System.err.println("finally");

}

}

public void throwExcep(int i) throws Exception {
System.err.print("3-->");
if (i > 20) {
throw new SQLException("sqlException");
}
if (i > 5) {
throw new IOException("读取文件出错");
}
if (i < 0) {
throw new RuntimeException("runtimeException");
}
}

public static void main(String[] args) {
System.err.println("(1)无异常:");
new FinallyAndReturn().flow(1);
System.err.println("(2)无异常且return在try中:");
new FinallyAndReturn().flow(3);
System.err.println("(3)IOException异常且return在IOException中:");
new FinallyAndReturn().flow(6);
System.err.println("(4)SQLException异常:");
new FinallyAndReturn().flow(30);
}
}


程序执行结果:

(1)无异常:
1-->2-->3-->4-->finally
(2)无异常且return在try中:
1-->2-->finally
(3)IOException异常且return在IOException中:
1-->2-->3-->5.1-->finally
(4)SQLException异常:
1-->2-->3-->5.2-->finally


由(1)结论可知:当程序中无异常且无return时:

​ 程序执行顺序为try–>finally

由(4)结论可知:当程序中有异常但无return时:

​ 程序执行顺序为try–>catch–>finally

由(2)结论可知:当程序中无异常但return在try中时:

​ 程序执行顺序为try–>finally–>return

由(3)结论可知:当程序中有异常且return在异常中时:

​ 程序执行顺序为try–>catch由(2)结论可知:当程序中无异常但return在try中时:

​ 程序执行顺序为try–>catch–>finally–>return

注:1.当程序发现异常后将被catch捕捉执行catch中的语句,异常后的语句将不被执行。

​ 2.由于多态性,我们一般先catch子类异常,后catch父类异常,最后catch Exception
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息