您可以在.net基类库中找到的模式是ThrowHelper的模式.实质上,它减少了每种方法的字节码量.
无论如何,我想知道是否有一个属性指令来阻止throw Helper中的错误停止在帮助程序内部.我更喜欢调试器停在主叫线上.
即
ThrowHelper.ThrowAnException ()
Run Code Online (Sandbox Code Playgroud)
而不是在ThrowAnException()内
您可以使辅助方法实际上不抛出异常,而只是创建它。堆栈跟踪将指向实际方法中的 throw 语句,而不是 ThrowHelper 中的任何内容。
throw ThrowHelper.CreateAnException();
Run Code Online (Sandbox Code Playgroud)
您还可以使用属性标记您的投掷方法:
class ThrowHelper
{
[DebuggerStepThrough]
public static void Throw()
{
throw new InvalidOperationException();
}
}
Run Code Online (Sandbox Code Playgroud)
然后调试器不会进入此方法.