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

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、异常之间没有顺序关系。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fjkxyl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值