Pau*_*ner 6 .net factory exception
在查看从WCF库反映的一些代码时,我看到了用于创建异常的模式:
if(argument == null)
{
throw Error.ArgumentNull("argument");
}
Run Code Online (Sandbox Code Playgroud)
空参数是最简单的示例,其他类型的异常可通过静态错误类获得.
这种工厂模式的价值是多少?为什么不使用new
运算符并简单地调用ArgumentNullException
构造函数?
我认为主要原因是.NET异常消息是本地化的.需要从字符串资源中检索实际的消息文本.最好将这种代码放在一个地方,这样任何人都不会弄乱字符串资源名称.
使用工厂以便可以调整实际异常类型的想法让我觉得不太有用.这样做可能会破坏许多客户端代码,无论出于何种原因,这些代码都会尝试捕获该异常.一旦你发出抛出特定异常的代码,你几乎就会陷入困境.做出明智的选择 :)
我发现的最大原因是标准化在特定开发团队(或多个团队)的框架内处理和定义异常的方式。甚至微软也指出,各种异常类型在 Exception、SystemException 和 ApplicationException 之间并没有明确的标准。根据管理特定逻辑情况的规则,异常的需求可能会有所不同。它对于消除开发人员日常关注的常见任务(例如日志记录)也很有用。开发人员所要做的就是在工厂中使用适当的异常,工厂会处理其余的事情。
归档时间: |
|
查看次数: |
914 次 |
最近记录: |