2012-06-24 105 views
0

我有c#.net代碼,它調用另一個外部/引用.net程序集的方法。我調用的這個方法拋出一個異常,如果來自我傳遞它的對象的某個屬性爲null。這是概括地說:檢測引用DLL(.Net)中的方法拋出的異常

public void Add(string key, object obj) 
{ 
.. 
//if the Foo property from obj is null then 
throw new Exception("Foo property is null or empty") 
.. 
} 

在它調用DLL的加載方法我的客戶端代碼,我想能夠檢測這個特定的異常發生,也許是它的「富屬性區分爲空或空「消息。目前,當它遇到這個方法時,我得到一個NullReferenceException,所以我發現這個異常。

問題1: 我可以得到與我調用的代碼(在引用的程序集中)引發的異常相關的錯誤消息?

問題2: 這被認爲是不好的做法或者可能只是非典型的?

很明顯,我可以反彙編第三方DLL來發現我傳入的obj必須有這個「Foo」屬性集。所以,我的問題在於練習(因爲我是一個n00b)。

回答

0

捕獲System.Exception並顯示異常Message屬性是我所需要的。起初,我一直在Add方法中得到一個NullReferenceException,其中「對象引用未設置爲對象的即時」消息,但我希望通過消息「Foo屬性爲null或空」來獲取Exception。我的代碼中一些條件發生了變化,現在我得到了我期望的結果。

+0

這是非常糟糕的做法,本地化您的應用程序會破壞您的代碼。 –

+0

@Hans我不明白 - 這是不好的做法,趕上我打電話的代碼拋出異常嗎?我不確定你的意思是「本地化」你能幫助我嗎? – JohnZaj

+0

@hans爲了簡潔起見,它沒有被本地化。我同意你的評論 – JohnZaj