2010-03-18 70 views
19

如何設置Eclipse以在出現異常時停止。如何設置Eclipse以停止在線發生異常?

我有一個Eclipse斷點設置來打破異常。在下面的代碼示例中,我遇到的問題是Eclipse嘗試打開Integer源代碼。有沒有什麼辦法可以在我的代碼示例中顯示的地方讓調試器中斷?如果我向下移動堆棧跟蹤,我會到這一行,如果有一種方法可以在沒有「找不到源」窗口的情況下執行此操作,那將會很好。

這可以在Visual Studio中完成,所以它使我瘋狂無法找到一種方法在Eclipse中執行此操作。

package com.test; 

public class QuickTest 
{ 
    public static void main(String[] args) 
    { 
    try 
    { 
     test(); 
    } 
    catch(NumberFormatException e) 
    { 
     System.out.println(e.getMessage()); 
    } 
} 

    private static void test() 
    { 
    String str = "notAnumber"; 

    Integer.parseInt(str);//<----I want debugger to stop here 
    } 
} 

 

回答

3
  1. 你就不能設置在Integer.parseInt(str)線斷點?
  2. 如果您將Eclipse項目指向使用JDK而不是JRE,則應該爲所有平臺類(Integer等)選擇源代碼。
+1

我試圖避免打開Integer類。我只是希望它用我的代碼解決問題。設置一個斷點不會有幫助,因爲這只是一個簡單的例子。真正的代碼有數百個類,等等。 – Crispy 2010-03-18 16:23:01

+1

您可能是想說'JDK'而不是'JVM'(?) – Fortega 2010-03-18 16:29:14

+0

@Fortega,是的,謝謝 – 2010-03-18 17:31:49

5

首選項 - >爪哇 - >調試 - >步驟過濾 選擇要過濾掉調試(java.*, sun.*, etc) 在調試請確保所選過濾箭頭微步時包。

這應該可以做到。

+0

很酷!我一直想知道如何做到這一點! – charlie 2010-03-18 16:30:01

+1

當斷點設置爲異常時,它看起來並不工作:( – Crispy 2010-03-18 17:12:54

+0

)如果按下step return,step out或drop frame to the point,那麼它怎麼樣?不知道它是否可以工作,但是它是一個鏡頭。 – 2010-03-18 17:35:26

2

調試視圖將顯示當前執行的整個堆棧。您需要選擇您想要查看的行。這將是一樣的,你有一個斷點,你可以看到所有的變量等

35

我不知道怎麼回事到那裏,但我只是做:

Window -> Show View -> Breakpoints 

而且在該選項卡有一個「J!」它允許您設置異常的斷點。

+0

是的,這就是我使用的。除了我的例子,它試圖打開Integer源代碼,我不想讓Integer源代碼打開,我只是希望調試器停止在'Integer.parseInt(str);' – Crispy 2010-03-18 18:17:35

+2

調試器將在拋出異常時停止(這就是你要求的),並且總會在拋出異常的源代碼行中打開編輯器 - 在這種情況下,在Integer.parseInt()中。整個調用堆棧也會顯示出來,您可以點擊相應的級別來查看該級別的源代碼。 – DJClayworth 2010-07-16 21:09:48

+0

然後,您可以使用調用堆棧回到您自己的代碼,但沒有真正的方法可以讓它神奇地決定您認爲有趣的堆棧級別。你應該真的接受這個答案。 – David 2013-07-12 02:01:44

相關問題