gpt4 book ai didi

java - 从辅助函数抛出异常

转载 作者:行者123 更新时间:2023-11-30 03:05:26 24 4
gpt4 key购买 nike

以下静态辅助函数是反模式吗?

public class CustomException extends RuntimeException {
// ...
public static void rethrow(String s, Exception e) throws CustomException {
throw new CustomException(s + "\n" + "Exception: " + e.getMessage());
}
}

http://javapeanuts.blogspot.com/2012/02/exception-management-antipatterns.html 上看不到它或其他地方。

一个迫在眉睫的问题是静态警告被破坏,例如我无法再执行以下操作:

final Blah blah = null;
try {
blah = foo();
}
catch (Exception e) {
CustomException.rethrow("Couldn't blah", e);
}
bar = blah.bar(); // ERROR: Variable 'blah' might not have been initialized.

嗯嗯,我想我已经解决了。 :-) 我应该为 CustomException 创建一个构造函数,它将 String 和 Exception 作为参数。

最佳答案

是的,捕获 RuntimeException 并在应用程序中创建新路径是不允许的,因为捕获 RuntimeException 是完全错误的,因为抛出它的主要原因主要与您的资源等有关。例如系统和其他与您的代码无关的东西。

相反,您应该终止指定代码的流程并分别通知用户。

但是,在某些情况下,所描述的反模式可能听起来更好,因此,您最好通过以下线程,以便根据您的问题制定更好的想法,在任何给定时间:

以上只是文字,这意味着最终的设计(即遵循语言规范/创建反模式)取决于您,但您应该始终牢记(并决定/采取相应的行动,每种情况)是一个层的运行时异常是另一层的检查(并采取行动)异常

关于java - 从辅助函数抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34907378/

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