2015-04-29 74 views
3

是否有任何方式(包括第三方插件)在Eclipse 中創建Java異常斷點,只有在條件爲真時纔會斷點在Eclipse中有條件的Java異常斷點

當前用例:我試圖捕獲一個特定類的ClassNotFoundException以調試類加載問題。不幸的是,我的斷點實際上困擾着Tomcat啓動時發生的數千個不相關的例程異常。我想告訴Eclipse只有在-1 < e.getMessage().indexOf(MY_CLASS_NAME)時才能打破。

幫助!?

更新:有幾個答案建議右鍵單擊異常屬性中的異常並單擊條件斷點。我已經試過了。至少Eclipse Eclipse Luna版本2(v 4.4.2,版本號20150219-0600),這是不可用於異常斷點

爲了清楚起見,這裏是我的異常斷點的屬性的圖片:

enter image description here

+0

如何在'ClassNotFoundException(String s)'構造函數中添加常規斷點並將條件放入該斷點? – TMG

回答

2

沒有選擇添加一個條件異常斷點類似於正常斷點。您可以做的最接近的事情是使用Filtering屬性頁在斷點上添加一個過濾器,例如引發異常的類和/或包。或者您可以在調試時過濾特定的線程。

更多信息,請參見http://help.eclipse.org/juno/topic/org.eclipse.jdt.doc.user/tasks/tasks-create-exception-filter-expression.htm

+0

可以將過濾設置爲某些加載類的類加載器類。它有什麼幫助? – TMG

+0

@TMG我想它可以縮小對引發異常的類的搜索範圍,只要它減少執行被暫停的次數即可。 – manouti

0

右鍵單擊您的斷點,菜單的最後一行:「斷點屬性」。您會發現一個帶有「有條件」的複選框。然後,您只需在編輯框中添加-1 < e.getMessage().indexOf(MY_CLASS_NAME)

+0

對於異常斷點,我沒有這個選項,只適用於常規斷點。 (注意:Eclipse版本= Juno Service Release 2,20130225-0426) – 0xbe5077ed

+0

您不能在異常斷點中添加條件。最好的辦法是使用Try ..抓住並放置你的斷點,像System.out.println(e.getMessage()),並在那裏做一個條件斷點。 – JFPicard

+0

我無法編輯正在拋出的代碼。它位於我無法控制的JAR中。 – 0xbe5077ed

1

右鍵點擊您的折點! - >屬性 - >條件斷點

+0

對於異常斷點,我沒有這個選項,只適用於常規斷點。 (注意:Eclipse版本= Juno Service Release 2,20130225-0426) – 0xbe5077ed