Java Try Catch块

Java Try Catch块,第1张

Java Try Catch块

在Java中, 可以 使用多个

catch
块。

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

这取决于你的代码必须在

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

一种 不好的
做法是将单个处理程序用于一般

Exception
(或更糟糕的是
Throwable
,也将捕获
RuntimeException
s和
Error
s):

try {    // stuff that throws multiple exceptions}// badcatch (Exception e) {    // TODO}

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

Exception
秒。

如果它们中的一些在继承方面相关,请始终先捕获子类(即更具体的

Exception
s),以免您的代码无法编译:

try {    // stuff that throws FileNotFoundException AND IOException}// good: FileNotFoundException is a child class of IOException - both checkedcatch (FileNotFoundException fnfe) {    // TODO}catch (IOException ioe) {    // TODO}

还要看一下Java 7的multi-
catch块
,其中不相关的

Exception
s可以一次捕获
|
,每种
Exception
类型之间使用分隔符:

try (optionally with resources) {    // stuff that throws FileNotFoundException and MyOwnCheckedException}// below exceptions are unrelatedcatch (FileNotFoundException | MyOwnCheckedException e) {    // TODO}

注意

在您链接到的这个示例中,
将它们放在一起 下面的第一个代码片段可以说是次优的:它 确实
捕获了可能抛出的

Exception
s,但是其中一个是
IndexOutOfBoundsException
,这是一个
RuntimeException
(未选中),不应理论上处理。

取而代之的是,

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

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



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5616419.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存