gpt4 book ai didi

java - 有时可以发现并处理错误,那么为什么大多数博客都声称应该处理所有错误?

转载 作者:行者123 更新时间:2023-12-03 09:03:48 25 4
gpt4 key购买 nike

为什么大多数博客都说无法处理错误?例如,在以下代码中,我已经这样做了。为什么大多数博客都声称不应处理错误?

package errors;

public class StackOverflowErrorDemo {

public void method1() {
this.method2();
}

public void method2() {
this.method1();
}

public static void main(String sri[]) {
try {
StackOverflowErrorDemo k = new StackOverflowErrorDemo();
k.method1();
} catch(StackOverflowError error) {
System.out.println(" Inside catch of stackoverflow");
}

System.out.println(" after error has been caught!!");
}
}

最佳答案

鉴于这是一个相当广泛的,开放式的问题,不太可能特别适合SO,因此我不确定是否要对此作出回应,但我将尝试将我的回答限于您发布的代码。

举个例子,您提供的示例并不是真正的异常行为。该程序的正确行为依赖于它引发StackOverflowError的行为。如果未引发此错误,它将无法正常工作。您可以检测到此类错误的事实并不能真正证明所有错误都可以以明智的方式捕获和处理。相反,它证明您可以检测到已发生异常。一旦检测到此类异常,是否需要采取明智的措施以使您仍然可以产生正确的输出和明智的行为,将完全取决于应用程序。

如果我正确理解了您的主张,那么“无法处理大多数错误”这一点实际上意味着,当您为真正异常的行为达到真正的“错误处理”时,您不太可能以明智的方式进行恢复。例如:如果您的应用程序是某种数据库驱动的应用程序,并且数据库消失了,那么您几乎无法提供明智的行为。同样,如果您达到了程序不变量被上游输入验证不足所破坏的地步,那么除了放弃和出错之外,您可能无能为力。

关于java - 有时可以发现并处理错误,那么为什么大多数博客都声称应该处理所有错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26007254/

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