2015-10-07 91 views
0

在OS X 10.11上,我們的應用程序用戶遇到了幾個沒有堆棧跟蹤的NPE(請參閱this stackoverflow-question)。我現在想在這種情況下自己創建一個來調試我們的錯誤處理。在沒有堆棧的情況下創建NPE

如何防止創建堆棧跟蹤?

+0

如果有人可以解釋我這樣做的目的是什麼? –

+0

我想調試我們的錯誤代碼處理是否正確處理這些無堆棧跟蹤的異常。 –

回答

1

那麼,它實際上是簡單的:

final NullPointerException npe = new NullPointerException(); 
npe.setStackTrace(new StackTraceElement[0]); 
throw npe; 
1

正如鏈接帖子中提到,優化發生在同一個代碼會導致相同的異常足夠頻繁。所以有一種方法是循環你的異常拋出和錯誤處理代碼足夠多的時間來開始看優化。

或者你可以嘗試這樣的黑客:

try { 
    throw new NullPointerException("fake"); 
} catch (NullPointerException e) 
    e.setStackTrace(new StackTraceElement[0]); 
    throw e; 
} 
+0

我試過騎車> 100000次,但沒有成功,所以我搜索了另一種方式。 –

相關問題