来自 MSDN:
每个 ArgumentException 都应带有导致此异常的参数的名称。
我的问题:如果属性设置器应该抛出一个ArgumentException
,我应该给它设置器的参数名称(默认值:)value
还是属性名称?
例子:
Private _myProperty As String
Public Property MyProperty As String
Get
Return _myProperty
End Get
Set(value As String)
If String.IsNullOrEmpty(value) Then
' what I've been doing for the last 2 years
Throw New ArgumentNullException("value", "value cannot be empty")
' what I think I should be doing instead
Throw New ArgumentNullException("MyProperty", "value cannot be empty")
End If
_myProperty = value
End Set
End Property
我希望这是有道理的。你怎么看?
编辑
我想另一种解决方案是重命名value
为更有意义的名称,然后将其用作paramName
. 但不知何故,这似乎不是正确的做法。