gpt4 book ai didi

java - 异常(exception)——为什么还要抛出异常呢?

转载 作者:太空宇宙 更新时间:2023-11-04 07:25:13 24 4
gpt4 key购买 nike

所以,我知道这听起来有点极端,但我想表达一个观点:

好的。所以我的代码并不关心抛出什么类型的异常,99.9% 的情况下,如果抛出异常,无论如何都会以相同的方式处理它。

现在,为什么我还要在代码中抛出\创建新异常?显然我使用的所有库都已经抛出了它们,并且它们也提供了非常丰富的信息。

为我的方法传递了一个空对象?谁在乎呢,将为我自动抛出一个空指针异常。

你能提出一个很好的论据,为什么我应该创建新的异常并抛出它们?

编辑我的意思:

为什么要这么麻烦:

public myMethod() {

try {
doStuff1();
}
catch(Exception e) {
throw new Exception("Error in doStuff1");
}
try {
doStuff2();
}
catch(Exception e) {
throw new Exception("Error in doStuff2");
}

当我可以使用这个时:

public myMethod() {

doStuff1();
doStuff2();

}

最佳答案

您的客户想要详细的错误报告。出了什么问题,哪里出了问题。

他们不知道什么是空指针异常。即便如此,如果没有堆栈跟踪,这本身也不是特别有帮助。那么空指针被传递到您的 RetrieveReportX 方法中吗?检查它是否为空并抛出 ReportXNoIdentifierException,而不是让它自动抛出空指针异常。然后,您将在某个地方有一个错误处理程序,根据这些自定义异常,可以准确报告(人类)流程中出现的问题,并且您的客户很高兴,因为他们可以看到“尝试检索报告 X 时未提供标识符,而不是 [stacktrace] 处的 NullPointerException。”

关于java - 异常(exception)——为什么还要抛出异常呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18644080/

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