我今天讨论了关于重构此问题的讨论(#1)
public void MyFunc(object myArgument)
{
if(myArgument == null)
throw new ArgumentNullException("myArgument");
....
与此(#2)
//inside a shared assembly in a class called Guard
public static void AgainstArgumentNull(object obj, string message)
{
if (obj == null)
throw new ArgumentNullException(message);
}
public void MyFunc(object myArgument)
{
Guard.AgainstArgumentNull(myArgument, "myArgument");
....
我的直觉是,由于以下原因,#1更好:
我的问题是:
我的直觉正确吗?
在某些情况下,我们从另一个程序集引发异常的事实不会成为麻烦吗?
最佳答案
对于这种特殊情况,您无论如何都不应使用Guard
。您应该使用代码契约(Contract)。
Contract.Requires(myArgument != null);
关于c# - 在C#中引发异常,守护,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6819868/