Seb*_*ski 58 c# debugging exception visual-studio-debugging async-await
当调试器附加到.NET进程时,它(通常)在抛出未处理的异常时停止.
但是,当您使用某种async
方法时,这似乎不起作用.
我之前尝试的方案列在以下代码中:
class Program
{
static void Main()
{
// Debugger stopps correctly
Task.Run(() => SyncOp());
// Debugger doesn't stop
Task.Run(async () => SyncOp());
// Debugger doesn't stop
Task.Run((Func<Task>)AsyncTaskOp);
// Debugger stops on "Wait()" with "AggregateException"
Task.Run(() => AsyncTaskOp().Wait());
// Throws "Exceptions was unhandled by user code" on "await"
Task.Run(() => AsyncVoidOp());
Thread.Sleep(2000);
}
static void SyncOp()
{
throw new Exception("Exception in sync method");
}
async static void AsyncVoidOp()
{
await AsyncTaskOp();
}
async static Task AsyncTaskOp()
{
await Task.Delay(300);
throw new Exception("Exception in async method");
}
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?如何使调试器在异常中断/停止AsyncTaskOp()
?
Ste*_*ary 37
在Debug
菜单下,选择Exceptions...
.在"例外"对话框中,Common Language Runtime Exceptions
选中该行旁边的行Thrown
.
归档时间: |
|
查看次数: |
12851 次 |
最近记录: |