【发布时间】:2012-10-19 14:25:35
【问题描述】:
.net 基类库中的一个模式是 ThrowHelper。从本质上讲,它减少了每个方法的字节码数量。
无论如何,我想知道是否有一个属性指令可以阻止 throw Helper 中导致的错误在 helper 内停止。我希望调试器在调用行停止。
即
ThrowHelper.ThrowAnException ()
而不是在 ThrowAnException() 中
【问题讨论】:
.net 基类库中的一个模式是 ThrowHelper。从本质上讲,它减少了每个方法的字节码数量。
无论如何,我想知道是否有一个属性指令可以阻止 throw Helper 中导致的错误在 helper 内停止。我希望调试器在调用行停止。
即
ThrowHelper.ThrowAnException ()
而不是在 ThrowAnException() 中
【问题讨论】:
你也可以用attribute标记你的投掷方法:
class ThrowHelper
{
[DebuggerStepThrough]
public static void Throw()
{
throw new InvalidOperationException();
}
}
那么调试器就不会进入这个方法了。
【讨论】:
您可以让辅助方法实际上不抛出异常,只需创建它。堆栈跟踪将指向您真实方法中的 throw 语句,而不是 ThrowHelper 中的任何内容。
throw ThrowHelper.CreateAnException();
【讨论】: