4

您可以在 .net 基类库中找到的一种模式是 ThrowHelper。从本质上讲,它减少了每个方法的字节码数量。

无论如何,我想知道是否有一个属性指令来阻止 throw Helper 中导致的错误在 helper 内停止。我希望调试器停在调用行。

IE

  ThrowHelper.ThrowAnException ()

而不是在 ThrowAnException() 内部

4

2 回答 2

5

您还可以使用属性标记您的投掷方法:

class ThrowHelper
{
    [DebuggerStepThrough]
    public static void Throw()
    {
        throw new InvalidOperationException();
    }
}

那么调试器就不会进入这个方法了。

于 2012-10-19T06:25:35.090 回答
4

您可以使辅助方法实际上不抛出异常,只需创建它。堆栈跟踪将指向您真实方法中的 throw 语句,而不是 ThrowHelper 中的任何内容。

throw ThrowHelper.CreateAnException();
于 2012-10-19T06:20:51.577 回答