【发布时间】:2011-01-25 15:57:36
【问题描述】:
我真的想找出易于调试的可重用代码的最佳实践。我在开发人员中遇到了一种我还不太了解的常见做法。
public MyConstructor(Object myObject)
{
if (myObject == null)
throw new ArgumentNullException("myObject is null.");
_myObject = myObject;
}
似乎几乎没有必要进行这项检查。但我认为这是因为我不完全了解进行此检查的好处是什么。似乎无论如何都会抛出空引用异常?我可能错了,真的很想听听一些想法。
谢谢。
【问题讨论】:
-
您所做的不是必需的,您可以在引用该对象之前检查以确保它不为空。当然,在初始化对象时验证您将使用的内容是一种非常有效的方法。
-
@Ramhound - 这是使用 DI 框架(例如 StructureMap)时的常用方法,您不必直接控制传入构造函数的内容。如果你的类没有
myObject是无用的,并且这是唯一初始化它的地方,那么尽早抛出异常是有意义的,这样你就知道它们了。在一个长时间运行的网络应用程序中,你可能不知道这个问题,直到有人碰巧调用了一个需要该对象的方法。
标签: c# exception-handling null