有什麼方法可以找出.NET代碼中的任何方法可能拋出什麼異常?理想情況下,我想看看可能會拋出什麼,並選擇我想要處理的內容。我想我想要從java中的throws子句中獲得的信息。找出一種方法可能拋出的異常C#
情況是我正在從網絡上的xml文檔做一個linq查詢,並想知道可能會出錯。我可以在反射器中打開裝配體並看看,但我認爲可能有更簡單的方法。
有什麼方法可以找出.NET代碼中的任何方法可能拋出什麼異常?理想情況下,我想看看可能會拋出什麼,並選擇我想要處理的內容。我想我想要從java中的throws子句中獲得的信息。找出一種方法可能拋出的異常C#
情況是我正在從網絡上的xml文檔做一個linq查詢,並想知道可能會出錯。我可以在反射器中打開裝配體並看看,但我認爲可能有更簡單的方法。
.NET沒有強制執行(「checked」)異常,如java。智能感知可能會顯示此信息,如果開發人員已添加/// <exception.../>
塊 - 但最終會發生比您預期的更多異常(OutOfMemoryException
,ThreadAbortException
,TypeLoadException
等都可能發生相當不可預知的情況)。
一般而言,您應該瞭解哪些事情可能出錯,以及哪些事情可以實際做些有用的事情。在大多數情況下,正確的行爲是讓異常冒泡(只需運行任何「finally」代碼釋放資源)。
Eric Lippert在這個問題上有一個很好的博客here。
只要您使用BCL類,它們都會被完全記錄下來,因此Intellisense會顯示方法可能拋出的任何異常。除此之外(並閱讀文檔),我認爲沒有辦法。
我認爲,但它的成本錢Exception hunter可以提供此信息...
閱讀關於這個StackOverflow上的另一篇文章後,我建立在對方的回答上面寫一個工具來做到這一點,你可以從GitHub這裏得到源代碼:
你也可以在這裏閱讀更多:
謝謝。鏈接到Eric Lippert的博客也非常有幫助。 :) – Helephant 2008-11-05 10:19:03