快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24
n(); throw e;

该代码书写在方法或构造方法的内部。该语法中,使用throw关键字,后续为代表对应异常情况的异常类类型的对象。当系统执行到该代码时,将中止当前方法的执行,而直接返回到调用该方法的位置。所以在该代码下面不能直接书写其它的代码,因为这些代码将永远无法执行到。例如:

throw new NullPointerException(); int n = 10; //语法错误,该代码无法到达

按照该语法,则上面的转换方法改造以后的代码如下:

/** * 将自然数转换为二进制或八进制字符串 * @param value 需要转换的自然数 * @param radix 基数,只能取2或8 * @return 转换后的字符串 */ public static String toString(int value,int radix){  //判断异常的代码  if(value <0){   throw new IllegalArgumentException("需要转换的数字不是自然数!");  }  if(radix != 2 && radix != 8){   throw new IllegalArgumentException("进制参数非法");  }  if(value == 0){   return "0";  }  StringBuffer s = new StringBuffer();  int temp; //余数  while(value != 0){ //未转换结束   temp = value % radix; //取余数   s.insert(0,temp); //添加到字符串缓冲区   value /= radix; //去掉余数  }  return s.toString(); }

Java编程那些事儿82——异常处理语法1(3)

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

这里,当value的值小于0时,则抛出非法参数异常,当radix的值不是2或8时,则抛出非法参数异常。

这样在执行如下代码:

System.out.println(toString(12,2)); System.out.println(toString(12,16));

则程序的执行结果是:

1100

Exception in thread "main" java.lang.IllegalArgumentException: 进制参数非法

at ThrowException.toString(ThrowException.java:22) at ThrowException.main(ThrowException.java:7)

这里当参数符合要求时,则输出正确结果1100,如果参数不合法,则抛出异常,由于异常没有得到处理,则将终止程序的执行,则控制台输出异常的信息,并显示异常的类型以及异常出现的位置。

这样,就通过抛出异常的语法,使得该方法的逻辑比较严谨,在方法的参数不合法,即出现异常情况时,将这个异常报告出来,使得该方法不会出现错误的结果。

另外,抛出的异常将传递给运行时系统,这样就将这种异常的情况传递出来,提醒其它的结构进行处理。

10.3.2 声明异常

异常虽然被抛出了,但是由于抛出异常的代码是在方法或构造方法的内部的,在调用方法或构造方法时一般是无法看到方法或构造方法的源代码的,这样调用的程序员就无法知道该方法或构造方法将出现怎样的异常情况,所以需要有一种语法,可以使得调用的程序员可以看到被调用的结构可能出现的异常情况,这就是声明异常的语法。

声明异常的语法类似于药品上的副作用说明,在患者服用药品时,知道药品的正常功能,但是无法详细了解药品的成分以及每种成分的含量(类似于源代码),但是在药品的说明上都有副作用的说明,例如过敏者不能服用等,这些和声明异常的语法在功能上是类似。

声明异常的语法格式为:

throws 异常类名

例如:

public static void test(int n) throws IllegalArgumentException,IOException public Test()throws IllegalArgumentException

该语法使用在方法和构造方法的声明以后,在throws关键字以后,书写该方法或构造方法可能出现的异常,在这里需要书写异常类的类名,如果有多个,则使用逗号分隔这些异常类名即可。

这里需要注意的是:

1、这些异常必须是该方法内部可能抛出的异常

2、异常类名之间没有顺序

3、属于RuntimeException子类的异常可

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号