2010-05-15 44 views

回答

4

不是。但我認爲可以通過接口訪問調試接口並將斷點設置爲實現Break()函數的當前類來實現。有趣的問題,但。

+0

此建議的任何示例代碼? – 2012-08-30 17:22:22

+0

不是,但在JDK中應該有一些此接口的文檔。 – Daniel 2012-08-31 09:12:22

1

如何爲此目的引發和捕獲特定的異常並在您的IDE中創建異常斷點?

+2

C#中的調用提供了附加調試器或IDE的功能。有一個異常斷點需要IDE已經連接,不是嗎? – 2012-08-30 17:20:58

4

是的,我想要這樣的東西,所以我實施了一個非常簡單的解決方案,從我的C日。如果你想要一個輕量級的答案,這可能很有用。

public class DebugHelper 
    { 

     public static breakHere() 
     { 
      int i = 0; // Set breakpoint on this line in your IDE 
     } 
    } 

使用此方法。在「int i = 0;」的代碼中放置一個斷點線。並在您正在調試的代碼中調用該方法。這是獲得一些動態調試的快速答案,並且比變量上的手錶更快。

例...

private something(...) 
{ 
     for(...) 
     { 
      if(null == value) DebugHelper.breakHere(); 
     } 
} 

當然在C,你可以把正確的ASM斷點指令;-)這對我來說工作正常在罕見的情況下我想是這樣的。

+0

這種風格的解決方案也在以下網址討論:http://stackoverflow.com/questions/10736275/is-there-asm-nop-equivalent-in-java – 2015-03-16 10:19:56