您可以在 .net 基类库中找到的一种模式是 ThrowHelper。从本质上讲,它减少了每个方法的字节码数量。
无论如何,我想知道是否有一个属性指令来阻止 throw Helper 中导致的错误在 helper 内停止。我希望调试器停在调用行。
IE
ThrowHelper.ThrowAnException ()
而不是在 ThrowAnException() 内部
您还可以使用属性标记您的投掷方法:
class ThrowHelper
{
[DebuggerStepThrough]
public static void Throw()
{
throw new InvalidOperationException();
}
}
那么调试器就不会进入这个方法了。
您可以使辅助方法实际上不抛出异常,只需创建它。堆栈跟踪将指向您真实方法中的 throw 语句,而不是 ThrowHelper 中的任何内容。
throw ThrowHelper.CreateAnException();