【发布时间】:2012-03-13 07:57:05
【问题描述】:
我有 MS Test 单元测试,确保当被测方法给出错误参数时会抛出 Exception。我正在使用该模式:
My actual;
bool threw = false;
try
{
actual = target.DoSomething(aBadParameter);
}
catch
{
threw = true;
}
Assert.IsTrue(threw);
我将 CLR 异常设置为仅在用户未处理时中断(而不是在抛出时)。但是,当DoSomething() 抛出new Exception() 时,调试器会中断。如果我恢复,则单元测试成功完成。
如果我将单元测试代码剪切并粘贴到主程序中并在主程序的上下文中运行它(而不是在 MS 测试下),调试器不会在用户处理的异常处中断。
如何防止调试器中断我的用户处理的异常?
这并没有出现在与
相关的表面上Getting an Unhandled Exception in VS2010 debugger even though the exception IS handled
因为在这种情况下,异常被抛出在不同的线程上,并被 CLR 在回调中重新抛出。
【问题讨论】: