摘要:Java语言程序设计
反复地看书,做题,因为本课程主要是一些理论的知识,要求记忆的内容很多,因此,必须多做题,多看书,在做题的过程中检验自己对知识的理解和掌握情况是否到位、正确。自己总结课程的内容,也是帮助理解和记忆的好方法。为了更好的帮助大家考试,考试百科在文章Java语言程序设计2(13)中,为大家提供的如下内容:
catch子句中异常参数的声明原则是从特殊到一般,若将一般(范围宽)的异常参数放到了前面,特殊(范围窄)的异常参数放到了后面,编译系统会指出下列错误:
……:catch not reached
这是提示后面的catch子句根本不会被执行到,因为它能捕获的异常已经被前面的catch子句捕获了。
try语句中的finally子句的作用是说明必须执行的语句,无论try程序块中是否抛出异常,finally程序块中的语句都会被执行到。
【例3.29】 有finally子句的try语句。
class ExceptionDemo3{
public static void mian(String args[]){
try{
int x = 0;
int y = 20;
int z = y/x;
System.out.println(“y/x的值是: ” + z);
}catch(ArithmeticException e){
System.out.println(“捕获到算术异常: ”+ e);
}finally{
System.out.println(“执行到finally块内!”);
try{
String name = null;
if(name.equals(“张三”)){ //字符串比较,判断name是否为“张三”
System.out.println(“我的名字叫张三。”);
}
}catch(Exception e){
System.out.println(“又捕获到异常: ”+ e);
}finally{
System.out.println(“执行到内层finally块内!”);
}
}
}
}
程序运行结果如下:
捕获到算术异常:java.lang.ArithmeticException:/by zero
执行到finally块内!
又捕获到异常:java.lang.NullPointerException
执行到内层finally块内!
在Java语言中,try-catch-finally语句允许嵌套。本例中是将内层的try嵌套在外层的finally块内。在程序执行到外层的try程序块时,由于分母为零而产生了算术异常,所以程序转移到第一个catch块。该catch捕获了这个算术异常,并进行了处理,之后程序转向必须执行的外层的finally程序块。因为该finally块产生空指针异常(一个null字符串和字符串“张三”进行比较),所以内层catch自己再次捕获到异常,最后程序转移到内层的finally程序块。
上面就是文章Java语言程序设计2(13)的部分内容,后续文章请继续关注考试百科。http://pc.kaoshibaike.com 相关论坛:http://bbs.kaoshibaike.com/forum.php?mod=forumdisplay&fid=83
下一篇:Java语言程序设计2(12)