理解Java异常处理机制——Java异常处理的一个综合实例
2009-12-08 22:12
706 查看
理解Java异常处理机制——Java异常处理的一个综合实例
佟强 2009年12月8日声明抛出异常
如果程序员不想在当前方法内处理异常,可以使用throws语句声明将异常抛出到调用方法中。调用方法也可以将异常再抛给其他调用方法。
如果所有的方法都选择了抛出此异常,最后Java虚拟机将捕获它,输出相关的错误信息,并终止程序的运行。
在异常被抛出的过程中,任何方法都可以捕获异常并进行相应的处理。
捕获异常
捕获异常需要使用try、catch、finally构成的语句块。try语句块中是可能抛出异常的代码,如果一条语句抛出了异常,其后续语句不会继续执行,而是转到catch进行异常类型匹配。
catch语句块负责捕获指定类型的异常并进行处理。
finally语句块是可选的,一般用于释放资源,无论是否发生异常,finally语句块总会执行。
由于继承,在有多个异常需要捕获时,异常类型的顺序很重要。
getMessage()方法返回一个对发生的异常进行描述的字符串。
printStackTrace()方法打印方法的调用序列,一直到异常的产生位置。
try{ //可能抛出异常的代码 }catch(ExceptionType1 e1){ //抛出异常ExceptionType1时的异常处理代码 }catch(ExceptionType2 e2){ //抛出异常ExceptionType2时的异常处理代码 }finally{ //无论是否抛出异常,都会执行的代码 }抛出异常
不仅Java系统的类可以抛出异常,用户程序也可以抛出异常。 通过throw语句来抛出异常对象。 [code] throw new ExceptionType1();声明异常类
除了使用系统预定义的异常类外,用户还可以声明自己的异常类。 用户自定义的异常类必须是Exception的子类。public class MyException extends Exception{ public MyException(){ super("发生异常了!"); } } [code=java]package cn.edu.uibe.exp; class MyExp extends Exception{ private static final long serialVersionUID = 1L; MyExp(){ super("自定义异常"); } } public class Exp2 { public void f1(int n) { System.out.println("f1前面"); f2(n); System.out.println("f1后面"); } public void f2(int n) { System.out.println("f2前面"); try{ System.out.println("try的前面"); f3(n); System.out.println("try的后面"); //发生异常时不会输出 }catch(MyExp e){ System.err.println(e.getMessage()); }finally{ System.out.println("无论是否发生异常"); } System.out.println("f2后面"); } public void f3(int n) throws MyExp{ System.out.println("f3前面"); f4(n); System.out.println("f3后面"); //发生异常时不会输出 } public void f4(int n) throws MyExp{ System.out.println("f4前面"); if(n<0){ throw new MyExp(); } System.out.println(n); //发生异常时不会输出 System.out.println("f4后面"); //发生异常时不会输出 } public static void main(String[] args) { Exp2 exp = new Exp2(); exp.f1(-4); } }
[/code]
[/code]
相关文章推荐
- 理解Java异常处理机制——Java异常处理的一个综合实例
- 理解Java异常处理机制——Java异常处理的一个综合实例
- Java的异常处理机制的一个例子-读后定能对异常理解深刻
- (24) 深入理解java异常处理机制
- 深入理解java异常处理机制
- 深入理解java异常处理机制
- 深入理解java异常处理机制
- 深入理解java异常处理机制(目前最好的讲解异常的博文)
- 深入理解java异常处理机制
- java那些事(八)之深入理解java异常处理机制
- 深入理解java异常处理机制
- 深入理解Java异常处理机制
- 深入理解java异常处理机制
- 深入理解java异常处理机制
- 深入理解java异常处理机制
- 深入理解java异常处理机制
- 深入理解java异常处理机制
- java异常处理机制的深入理解
- 深入理解java异常处理机制
- 深入理解Java异常处理机制