java语言程式设计——异常处理语法 3
2012-03-17 00:19
363 查看
抛出异常的语法格式为:
throw 异常对象;
例如:
throw new NullPointerException();
或IllegalArgumentException e = new IllegalArgumentException();
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();
}
这里,当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,如果参数不合法,则抛出异常,由于异常没有得到处理,则将终止程序的执行,则控制台输出异常的信息,并显示异常的类型以及异常出现的位置.
这样,就通过抛出异常的语法,使得该方法的逻辑比较严谨,在方法的参数不合法,即出现异常情况时,将这个异常报告出来,使得该方法不会出现错误的结果.
另外,抛出的异常将传递给运行时系统,这样就将这种异常的情况传递出来,提醒其它的结构进行处理.
throw 异常对象;
例如:
throw new NullPointerException();
或IllegalArgumentException e = new IllegalArgumentException();
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();
}
这里,当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,如果参数不合法,则抛出异常,由于异常没有得到处理,则将终止程序的执行,则控制台输出异常的信息,并显示异常的类型以及异常出现的位置.
这样,就通过抛出异常的语法,使得该方法的逻辑比较严谨,在方法的参数不合法,即出现异常情况时,将这个异常报告出来,使得该方法不会出现错误的结果.
另外,抛出的异常将传递给运行时系统,这样就将这种异常的情况传递出来,提醒其它的结构进行处理.
相关文章推荐
- Java语言语法语义分析器设计与实现
- Swift语言中与C-C++和Java不同的语法(四)
- java语言基础入门——异常处理
- java语言的设计目标
- java基础学习篇——2、java语言的一些基本语法
- Java程序语言设计基础篇原书第十版第三章答案编程练习题
- 黑马程序员——Java语言->基础语法(上)
- 设计模式之桥接模式(Java语言描述)
- Java 语法介绍(一):Java语言的基本组成
- Java篇--Java语言的基本语法3
- Java语言 设计一个动物声音“模拟器”(用接口实现)
- day01--Java基础语法--Java语言基础
- 实训JAVA语言设计——输入年判断是否是闰年
- 大白话讲解设计模式之:代理模式 Java语言实现
- java 语言基础语法(一)
- JAVA基本语言、语法基础(一)
- Java语言设计模式之状态模式(State)
- Java语言实现的装饰设计模式复习
- Java语言设计文本查找器和文本编辑器
- 设计模式之桥接模式(Java语言描述)