您的位置:首页 > 编程语言 > Java开发

JDK1.7新特性--对try-catch代码块的改进

2016-10-25 14:05 253 查看
1.7之前对多异常的处理

class MainTest {
public static void main(String[] args) {
try {
String str = null;
Class clzz = Class.forName("testsss");
if (str.equals("abc")) {
System.out.println("ok");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NullPointerException e) {
e.printStackTrace();
}
}
}
<div style="font-family: 'Microsoft YaHei', SimSun, Verdana, Arial, Helvetica, sans-serif; line-height: 21px; font-size: 14px;">需要注意的是:</div><div style="font-family: 'Microsoft YaHei', SimSun, Verdana, Arial, Helvetica, sans-serif; line-height: 21px; font-size: 14px;">1、子异常要先于父异常抛出,否则后面的catch将永远执行不到,编译不能通过。</div><div style="font-family: 'Microsoft YaHei', SimSun, Verdana, Arial, Helvetica, sans-serif; line-height: 21px; font-size: 14px;">2、异常如果要抛出的话throws ClassNotFoundException ,NullPointerException中间用逗号分割。</div><div style="font-family: 'Microsoft YaHei', SimSun, Verdana, Arial, Helvetica, sans-serif; line-height: 21px; font-size: 14px;">3、抛出异常对象用throw,因为只能抛出一个异常,所以用throw不用加s。</div><div style="font-family: 'Microsoft YaHei', SimSun, Verdana, Arial, Helvetica, sans-serif; line-height: 21px; font-size: 14px;">4、抛出异常类用throws,因为可能抛出多个异常,所有throw后面要加s。</div><div style="font-family: 'Microsoft YaHei', SimSun, Verdana, Arial, Helvetica, sans-serif; line-height: 21px; font-size: 14px;">
</div><div><span style="font-family: 'Microsoft YaHei', SimSun, Verdana, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 21px;">1.7之后对异常的处理出现了新的改进,同样是上面的这段代码在1.7之后可以这样写:</span>
</div>
class MainTest {
public static void main(String[] args) {
try {
String str = null;
Class clzz = Class.forName("testsss");
if (str.equals("abc")) {
System.out.println("ok");
}
} catch (ClassNotFoundException | NullPointerException e) {
e.printStackTrace();
}
}
}


多异常之间可以通过|之间进行分割。

同样需要注意的是:

1、异常之间不能存在父子关系,应该是同级关系才行。打印异常,会自动去匹配。

2、异常之间没有顺序关系。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: