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) 

要获得唯一的错误消息。

相关问题