快速业务通道

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

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

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

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

10.3 异常处理语法

为了方便程序员进行异常的处理,在Java语言中创建了一套语法,这些语法主要分为以下几个部分:

1、抛出异常

当程序运行时,如果发现异常的情况,通过生成对应的异常对象,并将该异常对象传递给Java的运行时系统,使得系统中包含该异常信息,这样的过程被称作抛出异常。

抛出异常是整个异常处理机制的起点,也是异常的发源地,一般出现在项目底层的代码中。

2、声明异常

当一个方法在执行时,除了能够完成正常的功能以外,还可以出现一些异常情况,为了提醒调用该方法的程序员注意处理这些异常情况,需要在方法的声明中将这些异常声明出来,这就是声明异常。

声明异常的语法使得异常处理更加容易进行实现。

3、捕获异常及异常处理

当异常被抛出以后,如果不进行处理,则异常会在方法调用过程中一直进行传递,直到最后一个方法,在J2SE中也就是main方法,最终将显示在控制台。

在实际项目中,当异常被抛出以后,需要首先捕获到该异常,按照异常的种类不同,分别进行处理。

4、声明自定义异常类

虽然在JDK API中提供了几百个异常类,但是这些异常所代表的还只是常见的异常情况,在实际使用时还是无法代表所有的异常情况,所以Java语言运行声明自定义的异常类,使用这些自定义的异常类来代表实际项目中JDK API无法代表的异常情况。

下面依次详细介绍一下这些语法的相关规则。

10.3.1 抛出异常

在书写项目中相关的底层基础代码时,相关的方法除了实现应该实现的功能以外,还需要考虑到各种异常情况,如果出现该代码所在的方法无法处理的异常情况时,则应该在该方法内部抛出对应类型的异常时,使得整个方法的逻辑比较严谨。

例如,下面是一个实现将十进制数字转换为二进制或8进制字符串的方法:

/** * 将自然数转换为二进制或八进制字符串 * @param value 需要转换的自然数 * @param radix 基数,只能取2或8 * @return 转换后的字符串 */ public static String toString(int value,int radix){  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(2)

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

在该方法中使用除n取余的方法,将参数value转换为对应的字符串,当在main方法中以书写如下代码时:

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

则程序的运行结果是:

1100

这样在正常的情况下,程序获得了正确的结果,但是该方法由于逻辑的限制,只能实现将“自然数”转换为“二进制或八进制”字符串,如果在其它程序员误传入非法的参数时,则程序会获得不正常的结果,例如书写如下调用的代码时:

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

则程序的运行结果是:

12

这个结果在转换的逻辑上就是错误的。这样就因为其它程序员误传入非法参数而出现了错误的结果。如果该方法作为实际项目的一个逻辑存在,则会由于该方法的问题导致后续其它的功能也发生错误,这是每个程序员都不希望看到的。

所以该方法虽然在功能上达到了要求,但是逻辑还是不严谨的,还需要在其它程序员调用该方法时传入非法参数这样的异常情况时,将这种异常报告出来,这就需要抛出异常的的代码了。

抛出异常的语法格式为:

throw 异常对象;

例如:

throw new NullPointerException();

IllegalArgumentException e = new IllegalArgumentExceptio

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