2011-10-13 146 views
5

我正在爲Android的Java應用程序工作,我目前遇到一個問題,調試器正在進入我的catch塊,並以某種方式前爲空?有沒有人見過這樣的事情?捕獲空異常

} 
catch(Exception ex) 
{ 
    // Debugger is coming through the catch block and ex is null ???? 
} 

回答

6

這聽起來像源代碼和編譯的類不同步,所以調試器正在步入錯誤的塊。

嘗試做一個乾淨的,然後重建。

+0

我清理了項目並重建了,似乎修復了。謝謝! –

1

該塊中的異常永遠不會爲空。如果調試器中的指令指針指向catch行,則需要再多行一行以獲取可供您訪問的異常。你可能想要添加一行代碼(可能是一個日誌調用)到你的catch塊,並把你的斷點放在那裏來捕捉ex。

+0

是的,我甚至嘗試過'拋出空;'但是然後一個實例'NullPointerException'被捕獲。 –

+0

如果您說我回答了您的問題,請點擊我答案旁邊的複選框,說我解決了您的問題。 –

+0

我不是那個問這個問題的人,所以我不能那樣做。 –

0

添加一些日誌語句並檢查。您的ex可能超出範圍。

+0

有問題的David Carpenter說:「//調試程序正在通過catch塊並且ex是null ????」。所以「ex」就在範圍之內。 – hasanghaforian

0

在真實設備(Galaxy Tab 2)上進行調試時,我在AsyncTask中出現了完全相同的問題。所以我也可以證實,這個奇怪的問題是真實的。

對我來說,接受的答案沒有幫助。

但在我的情況下,拔掉設備的USB插頭並重新連接(然後再次運行我的應用程序)後神祕地消失了問題。