2013-03-22 76 views
1

發生錯誤時,我的java代碼中拋出異常。然後我使用jdb運行代碼,所以當發生異常時,我可以看到代碼所在並調試的狀態。對於我拋出的所有異常,我都會輸入一個有用的字符串消息。但是,當jdb捕獲到異常時,它不會隨同它一起打印此字符串。我如何打印這個字符串?jdb print捕獲異常消息

我已經Google搜索並閱讀文檔,但我無法弄清楚如何。

如果我有測試類:

public class Test{ 
    public static void main(String[] args){ 
     throw new IllegalArgumentException("How do I view this string through jdb?"); 
    } 
} 

並通過JDB運行:

$ jdb Test 
Initializing jdb ... 
> run 
run Test 
Set uncaught java.lang.Throwable 
Set deferred uncaught java.lang.Throwable 
> 
VM Started: 
Exception occurred: java.lang.IllegalArgumentException (uncaught)"thread=main", Test.main(), line=3 bci=9 

main[1] 
+0

爲什麼不只是使用現代IDE? – 2013-03-22 21:43:39

+1

我會,但在我使用的IDE(NetBeans和Eclipse)中更改命令行參數始終是個問題。對我來說,更容易讓他們登錄終端並執行操作。 – user2019811 2013-03-23 17:28:54

回答

1

退房加多寶 「捕獲」 的命令,例如 「抓拋出:IllegalArgumentException」。根據JDB docs,當引發異常時,它會導致調試器中斷,以便您可以探究細節。關於調試的This文檔很好地解釋了依賴於「打印」語句的一些缺點,並且還引用了JDB「catch」功能。

+0

唯一的問題是,我根據IllegalArgument,IllegalState,AssertionError等錯誤拋出了不同的異常。代碼庫並不是很小,我不記得我拋出的所有異常 – user2019811 2013-03-23 14:06:12

相關問題