我正在考虑通过异常实现更好的错误处理方法。当我深入我的代码并希望返回错误时,我有两个选择:
我喜欢1.但是,假设我创建了一个界面:
public interface Interface {
method1();
method2();
}
现在,在这种类型的合同中,我还没有看到将方法声明为:
的接口method1() throws ExtendedRuntimeException;
method2() throws ExtendedRuntimeException;
什么是指定实现需要处理扩展运行时异常的更简洁方法?
答案 0 :(得分:0)
您需要一种综合方法。 在应用程序中设计异常处理机制时,您需要设计强制impl处理异常的接口。这些是经过检查的例外情况。
此外,您必须事先决定处理所有异常的图层或决定如何处理异常。所有较低层都通过异常,即将异常冒泡。您可以通过创建异常子类或简单地抛出异常来实现。最好是创建一个异常子类,其中包含更多详细信息,如错误代码/消息等。
是的,许多设计的接口确实附加了方法定义。
HTH 〜Ayusman
答案 1 :(得分:0)
Sudoer,恕我直言,你无法控制你的接口的实现者处理运行时(a.k.a未经检查)异常。
就像@Ayusman提到的那样,你可以声明并要求实现者处理已检查的异常但是对于运行时异常,它总是要求他们不需要声明它。另外,对于未经检查的异常作为实现者,我可以抛出自己的运行时异常,作为未声明的接口设计器。
这是正确的,因为您只声明了一个契约,但是您没有足够的上下文来确定可能的运行时异常类型。希望我能在这里传达这个想法。
我发现这些很有用:
希望有所帮助。
答案 2 :(得分:0)
关于异常错误处理有许多思想流派。可以在此处找到一篇篇幅很长但内容丰富的文章:http://articles.vconst.com/2009/08/error-handling-and-exceptions-in-java.html
他实际上建议为运行时异常设置一个throws声明。