gpt4 book ai didi

java - 详细的异常捕获子句

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:16:51 24 4
gpt4 key购买 nike

背景
我有一个案例,我的逻辑需要用 try/catch 包围,我有很多 catch 子句,这让我的代码有点难看。我在 catch 子句中所做的只是使用 log4j 记录错误。
问题可以使用一个带有父异常类型的 catch 子句而不是一堆 catch 子句吗?而不是这个:

try{
//some statements
} catch (KeyStoreException e) {
LOGGER.error(e);
} catch (CertificateException e) {
LOGGER.error(e);
} catch (NoSuchAlgorithmException e) {
LOGGER.error(e);
} catch (FileNotFoundException e) {
LOGGER.error(e);
} catch (IOException e) {
LOGGER.error(e);
} catch (UnrecoverableKeyException e) {
LOGGER.error(e);
} catch (NoPropertyFoundException e) {
LOGGER.error(e);
}

使用:

try{

//some statements
} catch (Exception e) {
LOGGER.error(e);
}

哪个更好?

最佳答案

当捕获异常时,我通常发现越具体越好,也就是说,键入所有执行相同操作的不同 block 真的很烦人。值得庆幸的是,在 Java 7 版本中添加了一个 try-catch 符号,您可以在其中为单个 block 指定多个异常:

try{
//some statements
} catch (KeyStoreException |
CertificateException |
NoSuchAlgorithmException |
FileNotFoundException |
IOException |
UnrecoverableKeyException |
NoPropertyFoundException e) {
LOGGER.error(e);
}

这听起来像您正在寻找的内容,但 Oracle 文档中有更详细的信息:http://docs.oracle.com/javase/7/docs/technotes/guides/language/catch-multiple.html

关于java - 详细的异常捕获子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18776660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com