博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java语言程式设计——异常处理语法 3
阅读量:5890 次
发布时间:2019-06-19

本文共 1463 字,大约阅读时间需要 4 分钟。

抛出异常的语法格式为:
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,如果参数不合法,则抛出异常,由于异常没有得到处理,则将终止程序的执行,则控制台输出异常的信息,并显示异常的类型以及异常出现的位置.
这样,就通过抛出异常的语法,使得该方法的逻辑比较严谨,在方法的参数不合法,即出现异常情况时,将这个异常报告出来,使得该方法不会出现错误的结果.
另外,抛出的异常将传递给运行时系统,这样就将这种异常的情况传递出来,提醒其它的结构进行处理.

转载于:https://www.cnblogs.com/521taobao/archive/2012/03/17/2402477.html

你可能感兴趣的文章
Unity PhysicsScene测试
查看>>
CSS行高——line-height
查看>>
WPF成长之路------翻转动画
查看>>
Html列表分页算法
查看>>
JS自学笔记03
查看>>
vim 加密(crypt)文本文档
查看>>
理解父类引用指向子类对象
查看>>
BZOJ-2763: [JLOI2011]飞行路线 (SPFA分层图)
查看>>
make、make clean、make install、make uninstall、make dist、make distcheck和make distclean
查看>>
华为内部面试题库---(5)
查看>>
JDK动态代理实现
查看>>
反射方法关闭窗体报错的解决方法
查看>>
NSInvocation 调用block clang代码转换c++
查看>>
计算字符串中每种字符出现的次数
查看>>
Python3学习笔记(十五):常用时间模块time和datetime
查看>>
SQL Server2005中使用XML-OPENXML
查看>>
Bingo·Leap Motion设备原理解密了
查看>>
ASP.NET多文件上传实例
查看>>
leetcode之Happy Number
查看>>
【转】Java泛型-类型擦除
查看>>