当前位置: 首页 > 编程语言 > Java > 正文

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();

}