【问题标题】:Break on exception, except *here* (Visual Studio 2010 C#)打破异常,除了 *here* (Visual Studio 2010 C#)
【发布时间】:2012-03-16 11:21:33
【问题描述】:

Debug 菜单 - Exceptions - 在 Thrown on the Common Language Runtime Exceptions 打勾。

当你这样做时,它会打破所有异常,这很棒。

您可以向该包添加其他例外,或者启用或禁用个人,但这有点费力。

有没有办法使用源指令来抑制对调试器的中断?某种评论或编译指示或类似的东西?

我有一些我不能的代码,没有抛出异常,调试器中断它有点痛苦。我更喜欢让 VS 中断任何抛出的异常,只是,在这种情况下,没有这个。 谢谢

【问题讨论】:

    标签: c# visual-studio-2010 exception


    【解决方案1】:

    您可以在包含您不想中断的代码的方法上使用 DebuggerStepThrough 属性来执行此操作。您应该将引发异常的特定代码行隔离到一个较小的方法中,并使用 DebuggerStepThrough 属性对该方法进行注释,这样您就不会影响现有方法的其余部分。

    【讨论】:

    • 这个答案也可能适用于这个问题:Debugging Nunit tests in Visual Studio C# Express 2010
    • 完美,没想到布赖恩 :) 乔治,我已经尝试过你的建议,但必须启用和禁用并保持禁用状态仍然很痛苦。
    • 试过你的答案——没用。仍然得到调试器中断:发生 System.Exception _HResult=-2147417842 _message=应用程序调用了为不同线程编组的接口。 ...这是在代码中: _ctorTimerSetup(ref _timer, ref _useThreadPoolTimer); [DebuggerStepThrough] void _ctorTimerSetup(ref DispatcherTimer timer, ref bool useThreadPoolTimer) { try { timer = new DispatcherTimer { Interval = new TimeSpan(0, 0, 0, 0, _intervalMsecs) }; } 捕捉 { useThreadPoolTimer = true; } }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    相关资源
    最近更新 更多