ArgumentException和ArgumentNullException都用于验证参数,例如。
if (argument == null)
throw new ArgumentNullException("argument must not be null", "argument");
验证回调结果的最佳等价物是什么,例如
var x = argument.GetX();
if (x == null)
throw ???
答案 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,而不是局部变量。