快速业务通道

Java编程那些事儿83——异常处理语法2 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24
ception extends RuntimeException {}

自定义异常类的用途,则完全由程序员进行规定,可以在出现该异常类型的条件时抛出该异常,则就可以代表该类型的异常了。

在实际的项目中,有些时候还需要设计专门的异常类体系,来代表各种项目中需要代表的异常情况。

10.4 异常处理方式

前面介绍了异常处理机制的相关语法,但是当出现异常时,如何进行处理是语法无法解决的问题,下面就介绍一下异常处理的方式。

异常处理,顾名思义就是将出现的异常处理掉,但是根据异常出现的位置以及异常的类型不同,会出现很多的方式,依次介绍如下:

1、不处理

该处理方式就是只捕获异常不进行处理。不推荐使用该方式。

例如:

String s = “abc”; try{  int n = Integer.parseInt(s); }catch(Exception e){ }

对于这样的处理,该异常被忽略掉了,有可能会影响后续逻辑的执行执行。该种处理方式一般被初学者使用的比较多。

Java编程那些事儿83——异常处理语法2(5)

时间:2010-03-15 csdn 陈跃峰

2、直接处理掉

如果具备处理异常的条件,则可以根据不同的异常情况将该异常处理掉,例如给出用户错误原因的提示等或根据逻辑上的需要修正对应的数值。

例如:

/** * 异常处理示例 * 该程序的功能是将用户输出的命令行参数转换为数字并输出 */ public class ExceptionHandle1 {  public static void main(String[] args) {   int n = 0;   try{    //将输入的第一个命令行参数转换为数字    n = Integer.parseInt(args[0]);    //输出转换后的结果    System.out.println(n);   }catch(ArrayIndexOutOfBoundsException e){    System.out.println("请输入命令行参数!");   }catch(NumberFormatException e){    System.out.println("命令行参数不是数字字符串!");   }  } }

在执行该代码时,如果发生数组下标越界异常,则代表用户未输入命令行参数,则提示用户输入命令行参数,如果发生数字格式化异常,则代表用户输入的第一个命令行参数不是数字字符串,则给出用户对应的提示信息。

该示例中就是根据异常出现的原因提示用户进行正确的操作,这是一种常见的异常处理的方式。

3、重新抛出

在实际的项目,有些时候也需要将某个方法内部出现的所有异常都转换成项目中自定义的某个异常类,然后再重新抛出。

例如:

try{  //逻辑代码 }catch(Exception e){  throw new MyException(); }

这样转换以后,比较容易发现异常出现的位置,也方便项目中逻辑上的处理。

Java编程那些事儿83——异常处理语法2(6)

时间:2010-03-15 csdn 陈跃峰

4、在方法中声明

如果当前方法或构造方法中,或在当前方法或构造方法中调用的其它方法,会抛出某个异常,而在当前方法或构造方法中没有足够的信息对该异常进行处理,则可以将该异常进行传递,将该异常传递给调用当前方法的位置在进行处理。这就是异常在系统中传递的方式。

例如:

/** * 异常处理示例2 * 演示在方法中重新声明异常 */ public class ExceptionHandle2 {  public void test(String s) throws NumberFormatException{   int n = Integer.parseInt(s);   System.out.println(n);  } }

在test方法中,由于parseInt方法会抛出NumberFormatException异常,而该方法内部无法对此进行处理,所以则在test方法内部声明把NumberFormatException异常抛出,这样该异常就由调用test的方法再进行处理。这样异常就可以在方法之间进行传递了。

这里列举了异常处理中常见的一些处理方式,当然也可以根据需要,进行其它的处理。

10.5 总结

异常处理是Java语言中增强程序健壮性的一种机制,

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号