验证.NET中外部回调的结果时应该抛出什么异常?

时间:2009-07-02 15:20:37

标签: .net exception

ArgumentException和ArgumentNullException都用于验证参数,例如。

if (argument == null)
    throw new ArgumentNullException("argument must not be null", "argument");

验证回调结果的最佳等价物是什么,例如

var x = argument.GetX();
if (x == null)
    throw ???

2 个答案:

答案 0 :(得分:1)

在不了解您的代码的情况下,我可以建议抛出InvalidOperationException。

或者,如果这段代码很重要,你可以创建自定义异常,比如说XLoadException,并抛出它。

答案 1 :(得分:0)

我个人使用ArgumentException或ArgumentNullException与传递给例程的测试参数一起使用,如下所示:

Public Sub Test(s As Object)

If s Is Nothing Then
  Throw New ArgumentNullException("s")
End If

End Sub

在你的情况下,我只会抛出一个正常的异常,因为变量'x'不是传递给你的例程的参数,它是一个局部变量。我建议对传递给例程的参数使用ArgumentException或ArgumentNullException,而不是局部变量。