1

我在C#中的部分代碼中拋出了ArgumentNullException。我想捕獲並顯示我的異常的錯誤消息。但沒有參數名稱。我想將參數名稱傳遞給異常構造函數。無參數名稱的ArgumentNullException消息

throw new ArgumentNullException("myParameter", errorMessageStringVariable); 

如果我打電話error.Message我得到類似

errorMessageStringVariable 參數名:myParameter

我想只顯示errorMessageStringVariable。是否有可能使用ArgumentNullException,而沒有對error.Message進行某種形式化?

+0

你是否拋出了任何其他從'ArgumentException'繼承的異常? – HuorSwords 2014-11-06 08:56:23

+0

沒有我所知道的。但說實話,異常和try塊的拋出分開幾個級別,我不敢說其他一些在其間調用的代碼不會拋出這樣的異常。我工作的代碼非常晦澀。我不熟悉在try塊內發生的每一個可能的執行路徑。 – filipv 2014-11-06 09:12:08

回答

3

如果要構造異常沒有名稱,使用方法:

new ArgumentNullException(null, errorMessageStringVariable) 

但是,如果你想提出一個ArgumentNullException其中paramName設置,答案似乎是否定的。您必須對Message屬性使用字符串操作。

您可以創建一個派生自ArgumentNullException的新類。

+0

謝謝。這就是我需要知道的。 – filipv 2014-11-06 09:14:04

0

如果您撥打:

new ArgumentNullException(null, errorMessageStringVariable) 

異常消息是:

值不能爲空。參數名:errorMessageStringVariable

使用,而不是:

new ArgumentNullException(string.Emtpy, errorMessageStringVariable) 

要獲得唯一的錯誤消息。

相關問題