在BackgroundWorker
个实例中,我通过测试Exception
属性将DoWork
方法中的RunWorkerCompleted
处理到e.Error
方法。
private string Test()
{
// For the example, always throw an Exception
throw new Exception("Unknown error");
}
private void DoWork(object sender, DoWorkEventArgs e)
{
// Will always throw an Exception
e.Result = Test();
}
private void RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Error != null)
{
// Exception is managed here
}
else
{
// Nevers appends in this example
}
}
我的问题是调试器总是打破程序,因为"非捕获" Test
抛出异常(不是"非托管")。
如何在DoWork
范围内禁用调试器?
在调试过程中,我不想在DoWork
范围内破解程序,因为我们知道异常将在RunWorkerCompleted
中进行管理。
答案 0 :(得分:1)
如果将属性<system.webServer>
<httpErrors errorMode="Custom" existingResponse="Replace" >
<remove statusCode="404"/>
<error statusCode="404" path="NotFound.html" responseMode="File"/>
<remove statusCode="500"/>
<error statusCode="500" path="Error.html" responseMode="File"/>
<remove statusCode="400"/>
<error statusCode="400" path="Error.html" responseMode="File"/>
</httpErrors>
</system.webServer>
添加到事件处理程序,它将不再被调试器的默认设置选中。
[DebuggerNonUserCode]
请注意,您需要拥有&#34; Just My Code&#34;在调试器设置中启用(默认情况下启用)。