gpt4 book ai didi

java - 修改了异常处理最佳实践

转载 作者:行者123 更新时间:2023-11-29 09:50:40 25 4
gpt4 key购买 nike

我有一段代码,我在其中捕获所有异常并在最后抛出一个通用异常。像这样:

try {
// do something here
} catch (Whatever e) {
throw new MyException(e.getMessage());
}

这让我的函数定义看起来很干净,即“myFunc throws MyException”,但同时我失去了导致问题的语义。另一方面,如果我只抛出所有异常,这将使函数体更清晰,但函数的定义将包含 1-5 个 throw 语句。

我的问题是:什么更好?...我应该捕获所有异常,保持函数定义干净,还是应该抛出所有东西保持函数主体干净?

注意:第二种方法也会使我的函数的异常处理代码更加困难...

最佳答案

这通常是一个判断电话。您的函数应该公开与其所在层相关的异常。这通常意味着传递由您调用的事物引发的异常,有时则不会。

例如,如果您有一个 getAThingy 函数,并且您的应用程序可以配置为相关事物可以来自数据库或文件,那么它可能不适合 getAThingy 在数据库情况下引发 SqlException,因为调用它的代码必须处理该问题,无论是为文件还是数据库配置。 (它会成为一个有漏洞的抽象。)因此,这将是一个示例,说明您何时应该捕获并抛出其他更合适的东西。

相比之下,如果您接受某种不应为 null 的标识符,而有人传入 null,则愉快地传递 似乎是完全合适的code>NullPointerException 不包装它。

关于java - 修改了异常处理最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5274678/

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