【发布时间】:2017-08-17 13:04:57
【问题描述】:
我想知道在我的 .NET 方法可能会根据提供的参数和当前对象状态抛出两个或多个异常之一的情况下,应该遵循哪些最佳实践。哪个异常应该优先,我该如何确定?
一般情况下的答案最好,但这里有一个例子来说明我的问题:
假设我有一个接受对象参数的方法。此参数不能为空,因为它具有需要调用的属性或方法才能使方法工作。在这种情况下,可能会抛出 ArgumentNullException。
还假设我的方法在一个类上,它的实例首先需要处于特定状态才能使调用有效。如果不是,则可以在此处抛出InvalidOperationException。
现在考虑使用空参数调用方法而类实例也处于无效状态的情况。我应该抛出哪个异常,ArgumentNullException 或 InvalidOperationException?为什么?
【问题讨论】: