Java编程那些事儿83——异常处理语法2 - 编程入门网
xception e){ //语法错误,异常已经被处理
System.out.println("字符串索引值越界");
}
Java编程那些事儿83——异常处理语法2(3)时间:2010-03-15 csdn 陈跃峰这里Exception类是所有异常类的父类,在匹配时可以匹配到所有的异常,所有后续的两个异常处理的代码根本不会得到执行,所以将出现语法错误。正确的代码应该为:
如果在程序执行时,所有的异常处理的代码都是一样的,则可以使用Exception代表所有的异常,而不需要一一进行区分,示例代码如下:
在实际使用时,由于try-catch的执行流程,使得无论是try语句块还是catch语句块都不一定会被完全执行,而有些处理代码则必须得到执行,例如文件的关闭和网络连接的关闭等,这样如何在try语句块和catch语句块中都书写则显得重复,而且容易出现问题,这样在异常处理的语法中专门设计了finally语句块来进行代码的书写。语法保证finally语句块内部的代码肯定获得执行,即使在try或catch语句块中包含return语句也会获得执行,语法格式如下:
该语法可以和上面的两种try-catch语句块匹配,也可以和try语句匹配使用,和try语句块匹配的语法格式如下:
这样在执行时,无论try语句块中的语句是否发生异常,finally语句块内部的代码都会获得执行。 而只书写finally而不书写catch则会导致异常的丢失,所以最常用的异常处理的语法格式还是如下语法:
这样就是整个异常处理部分的逻辑代码、异常处理代码和清理的代码成为一个整体,使得程序代码更加显得紧凑,便于代码的阅读和使用。 Java编程那些事儿83——异常处理语法2(4)时间:2010-03-15 csdn 陈跃峰最后,介绍一下使用异常处理语法时需要注意的问题: 1、书写在try语句块内部的代码执行效率比较低。所以在书写代码时,只把可能出现异常的代码书写在try语句块内部。 2、如果逻辑代码中抛出的异常属于RuntimeException的子类,则不强制书写在try语句块的内部,如果抛出的异常属于非RuntimeException的子类,则必须进行处理,其中书写在try语句块是一种常见的处理方式。 3、catch语句块中只能捕获try语句块中可能抛出的异常,否则将出现语法错误。 10.3.4 声明自定义异常类 如果JDK API中提供的已有的异常类无法满足实际的使用需要,则可以根据需要声明自定义的异常类来代表项目中指定类型的异常。 异常类在语法上要求必须直接或间接继承Exception,可以根据需要选择继承Exception或RuntimeException类,这样也设定了自定义异常类的类型。如果直接继承Exception,则属于必须被处理的异常,如果继承RuntimeException,则不强制必须被处理。当然,可以根据需要继承其它Exception的子类。 在编码规范上,一般将异常类的类名命名为XXXException,其中XXX用来代表该异常的作用。 示例代码如下:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |