Sim*_*mon 4 .net c# encapsulation
一旦我阅读了一篇鼓励以下编程范例的MSDN文章(它不是100%真实...请参阅编辑):
public class MyClass
{
public void Method1()
{
NewCustomException();
}
public void Method2()
{
NewCustomException();
}
void NewCustomException()
{
throw new CustomException("Exception message");
}
}
Run Code Online (Sandbox Code Playgroud)
你认为这种范式有意义吗?将异常消息存储在static const字段中然后将其传递给异常的构造函数,而不是封装整个异常抛出是不是已经足够了?
编辑:
使用异常构建器方法.一个类在其实现中从不同的地方抛出相同的异常是很常见的.要避免过多的代码,请使用创建异常的辅助方法并将其返回.
我刚刚注意到(请参阅引文),该文章告诉我返回一个异常:
public class MyClass
{
public void Method1()
{
throw NewCustomException();
}
public void Method2()
{
throw NewCustomException();
}
CustomException NewCustomException()
{
return new CustomException("Exception message");
}
}
Run Code Online (Sandbox Code Playgroud)
你怎么看待这件事?
Jam*_*der 10
我的理解是,如果除了丢失与异常相关联的堆栈跟踪之外没有其他原因,传递异常实例是一种失礼.调用另一种方法会改变堆栈跟踪,从而使其无效.我建议至少让异常的堆栈跟踪并将其作为参数传递给一些帮助者,如果这是你要走的路.
| 归档时间: |
|
| 查看次数: |
1030 次 |
| 最近记录: |