2012-04-25 54 views
0

我有一个kludgey使用Java RuntimeError,我完全处理错误。唯一的问题是它给我带来烦人的痕迹,告诉我我导出和抛出的运行时错误发生在哪里。如何抑制这一痕迹?Java - 使自定义运行时错误不转储跟踪

作为参考,问题是我subclassed一个非抛出类,需要我的子类抛出。它要么“重写我的程序来读取像C程序”或“使用运行时错误来绕过抛出规范要求”。很明显,我现在发现投掷规格要求非常适得其反 - 其他解决方法不涉及维护一堆“workIsDone”变量,我们将不胜感激。

+1

什么?我们可以看看代码吗? – sjr 2012-04-25 17:39:17

+0

完全处理错误的意思是什么? – Gren 2012-04-25 17:42:10

+0

什么是Java RuntimeError?有没有名为RuntimeError的类?从哪个包? – JeanValjean 2012-04-25 17:42:29

回答

1

没有代码是非常难以知道你在说什么,但在一般情况下,堆栈跟踪来自处理程序捕获的异常并呼吁printStackTrace()就可以了。除非有要求,堆栈跟踪才会出现。现在,如果一个异常一直到AWT事件线程堆栈的顶部,那么默认处理程序将以这种方式打印出来。

通常,您想处理异常。使用运行时异常来解决一些超类方法没有声明任何异常这一事实可能是一个很好的策略,但是您需要负责始终捕获这些异常。如果你不能 - 也就是说,如果其他代码将会捕获它们,那么这是一个糟糕的策略,你不能使用它。

+0

覆盖/抑制printStackTrace是这里要做的事情。我可以在8米的距离接受这个答案。 – djechlin 2012-04-25 17:41:01

+0

那么,也许...... upvote? – 2012-04-25 17:41:37

+0

@djechlin'printStackTrace()'从未被默认调用!如果您在运行时捕获异常,则必须决定是否要打印该错误!当然,这个异常可能会破坏你的应用程序或它所抛出的线程, – JeanValjean 2012-04-25 17:44:39