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
相关文章推荐
- 关于java异常处理机制的深入理解
- JAVA异常处理机制
- Java中的异常处理机制
- java的异常处理机制
- Java异常处理机制的详细讲解和使用技巧
- java异常处理机制的深入理解
- Java中的异常处理机制
- Java中的异常处理机制
- 请描述Java中异常处理机制的简单原理和应用,并说明Error与Exception有什么区别?
- Java的异常处理机制的一个例子-读后定能对异常理解深刻
- Java中的异常处理机制
- JAVA异常机制介绍/如何正确的进行JAVA异常处理
- Java异常处理机制的详细讲解和使用技巧
- Java异常处理及异常机制介绍
- Java异常处理及异常机制介绍
- Java 和 .Net 在异常处理机制上的区别
- Java中的异常处理机制综合
- 理解Java异常处理机制——Java异常处理的一个综合实例
- Java中的异常处理机制的简单原理和应用
- Java中的异常处理机制的简单原理和应用。