java try catch块_Java Try Catch块

小编典典

在Java中, 可以 使用多个catch块。

它不一定意味着您必须这样做。

这取决于你的代码必须在try块,多少检查Exception的IT可能会潜在地抛出(甚至未选中Exception■如果你真的想赶上那班,通常你不这样做,你不

有 )。

一种 不好的

做法是将单个处理程序用于一般Exception(或更糟糕的是Throwable,也将捕获RuntimeExceptions和Errors):

try {

// stuff that throws multiple exceptions

}

// bad

catch (Exception e) {

// TODO

}

在 良好 的做法是捕获所有可能抛出 检查 Exception秒。

如果它们中的一些在继承方面相关,请始终先捕获子类(即更具体的Exceptions),以免您的代码无法编译:

try {

// stuff that throws FileNotFoundException AND IOException

}

// good: FileNotFoundException is a child class of IOException - both checked

catch (FileNotFoundException fnfe) {

// TODO

}

catch (IOException ioe) {

// TODO

}

还要看一下Java 7的multi-

catch块,其中不相关的Exceptions可以一次捕获|,每种Exception类型之间使用分隔符:

try (optionally with resources) {

// stuff that throws FileNotFoundException and MyOwnCheckedException

}

// below exceptions are unrelated

catch (FileNotFoundException | MyOwnCheckedException e) {

// TODO

}

注意

在您链接到的这个示例中,

将它们放在一起 下面的第一个代码片段可以说是次优的:它 确实

捕获了可能抛出的Exceptions,但是其中一个是IndexOutOfBoundsException,这是一个RuntimeException(未选中),不应理论上处理。

取而代之的是,SIZE变量(或可能的常量)应替换为对List要迭代的大小的引用,即list.size()为了防止IndexOutOfBoundsException被抛出。

我想在这种情况下只是提供一个例子。

2020-11-26

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值