浏览 2435 次
锁定老帖子 主题:Java异常处理机制
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2011-12-06
(1) 一旦产生异常,则首先会产生一个异常类的实例对象。 (2) 在try语句对此异常对象进行捕捉。 (3) 产生的异常对象与catch语句中的各个异常类型进行匹配,如果匹配成功,则执行catch语句中的代码。 Try{ //产生异常代码,并产生异常类的实例对象 }catch(Exception e){ //匹配异常类型 //执行异常处理代码 }finally{ //异常统一出口 }开发常见问题之一:程序开发中不会只存在一个异常,肯定会同时存在多个异常,此是,就需要使用多个catch语句进行处理,那捕获异常如何排顺?所以要注意,在Java中所有捕获范围小的异常必须放在捕获大的异常之前,否则程序编译时就会出现错误。 public class ExceptionDemo{ public static void main(String args[]){ System.out.println("计算开始"); int i=0 ; int j=0 ; try{ String str1 = args[0] ; String str2 = args[1] ; i = Integer.parseInt(str1) ; j = Integer.parseInt(str2) ; int result = i /j ; .......................产生异常 System.out.println("两个数字相除结果:"+result) ; }catch(Exception e1){ ..................异常捕获范围大 System.out.println("其它异常:"+e1.getMessage()) ; }catch(ArithmeticException e2){ ................错误,无法捕获 System.out.println("算术异常:"+e2.getMessage()) ; }finally{ System.out.println("计算结果") ; .............出口,一定执行 } } } 引用 结果:编译出错。
引用 开发常见问题之二:throw与throws区别。在定义一个方法时可以使用throws声明,使用throws声明的方法表示此方法不处理异常而交给方法调用处进行处理;而throw则直接抛出异常,两都常在一起使用,throw常用于自定义异常处理。上述为例说明
public class ExceptionDemo{ //执行相除 public int div(int i,int j) throws Exception{.....往上抛,由方法调用处进行处理,这里则由主方法处理 int result = 0 ; try{ result = i / j ; }catch(Exception e){ throw e; ........直接抛出异常 } return result; } //主方法 public static void main(String args[]){ ExceptionDemo ex = new ExceptionDemo(); try{ System.out.println("操作结果:"+ex.div(8,4)); }catch(Exception e){ System.out.println(e.getMessage()) ; } } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |