我有一个Java RuntimeError的kludgey使用,我在其中完全处理错误。唯一的问题是它让我烦恼的跟踪告诉我在哪里发生了我的派生和抛出的运行时错误。如何抑制这种痕迹?
作为参考,问题是我将非抛出类子类化并需要我的子类抛出。它要么“重写我的程序以像C程序一样读取”,要么“使用运行时错误来绕过规则要求”。显然我现在发现抛出规范要求非常适得其反 - 其他不涉及维护一堆“workIsDone”变量的变通方法将不胜感激。
答案 0 :(得分:1)
如果没有代码,很难知道你在谈论什么,但一般来说,堆栈跟踪来自处理程序捕获异常并在其上调用printStackTrace()
。除非有东西要求,否则不会出现堆栈跟踪。现在,如果异常使它一直到(例如)AWT事件线程堆栈的顶部,那么默认处理程序将以这种方式打印出来。
通常,您希望处理异常。使用运行时异常来解决某些超类方法没有声明任何异常的事实可能是一个很好的策略,但是你负责总是捕获这些异常。如果你不能 - 也就是说,如果其他一些代码将要捕获它们 - 那么这是一个糟糕的策略,你不能使用它。