2012-09-10 66 views
0

例如,調用層次是methodA-> methodB-> methodC-> methodD。是否有一種快速的方法來查找異常的catch子句?

在methodD中,引發了一個檢查的異常。在方法B中,異常被捕獲。

所以我的問題是,當我讀代碼,看到一個異常被拋出。有沒有一種快速的方法來找到異常被捕獲的代碼?

順便說一下,上下文是我重新構造應用程序中的所有異常。所以我正在考慮如何獲得更高的效率。

+0

我無法理解你想要做什麼。方法B捕獲異常,方法B想知道哪個方法捕獲異常? – JimN

+0

我的意思是當我讀代碼並看到一個異常被拋出。有沒有一種快速的方法來找到異常被捕獲的代碼? – Smartmarkey

回答

0

您需要查看IDE中的調用層次結構,並從methodD回到頂部以查找發生異常的位置。

或者你可以在你的調試器中拋出異常的地方進行下一行的斷點。 ;)

或者您可以打印堆棧跟蹤並選擇IDE中的每一行來查看堆棧跟蹤所反駁的代碼,並查看它是否會捕獲您異常。

+0

上下文是我重新構造應用程序中的所有異常。所以我正在考慮如何獲得更高的效率。 – Smartmarkey

+0

如果您想提高性能,我建議您使用CPU分析器。如果您的異常導致性能問題,如果不是,則它們將顯示爲問題(使用調用層次結構),則不需要更改它們。 –

+0

不可以。其目的是使應用程序中的所有例外以有組織和統一的方式進行。現在很混亂。 – Smartmarkey

0

如果我正確地理解了你,你正在捕捉和記錄某處的異常,並且你想看到(在日誌中)哪個類/方法拋出異常。這裏有一些想法:

  1. 修改記錄異常的代碼,明確包含捕獲異常的方法的名稱。
  2. 修改記錄器,以便捕獲並報告記錄異常的代碼的上下文(調用類和文件/行號)。調用堆棧可用於此目的。

選項#2更復雜,但對於更大的代碼庫肯定更有效。

相關問題