【发布时间】:2017-04-01 21:06:15
【问题描述】:
c#代码
void method(int a)
{
int b = get(a);
if ( b == 0 )
{
throw new NullReferenceException();
}
}
如果我抛出NullReferenceException,它会产生一个警告,这不是一个好办法。
那么如果有任何异常而不是 NullReferenceException 呢?我找到了 ArgumentNullException,但它对这段代码不太合适,因为 b 不是参数。
【问题讨论】:
-
例外的选择主要是个人喜好 - 所以这可能不适合 SO。
-
@AlexeiLevenkov 如果我使用 ArgumentNullException,那么参数 is 必须是“a”,否则会产生另一个警告,但我希望记录 b 为空。
-
为什么要生成异常?我会使用
bool method(int a)和return true或return false否则你可以看看这篇文章:msdn.microsoft.com/en-us/library/87cdya3t(v=vs.110).aspx -
如果您觉得异常是正确的方法,为什么不创建自己的异常类,例如
public class GetFailureException: Exception。您只需要覆盖类中的标准构造函数。 -
@JohnD,你的建议很好,但我不会创建我的例外,因为他们不会签署我的代码:p。我搜索项目代码发现他们使用 ArgumentException 来处理这件事。非常感谢!
标签: c# exception null nullreferenceexception argumentnullexception