2012-04-25 53 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