VS Express 2013 for Windows不会在引发异常的(异步)行停止

本文关键字:异常 异步 for 2013 Express Windows VS | 更新日期: 2023-09-27 18:28:49

我对异步编程很陌生。当抛出异常时,我习惯于VisualStudio在错误的行处停止。在如下代码中,调试器通常会停止并突出显示第2行

int[] array = new int[] { 0, 1, 2 };
int throwsException = array[3];

但是,当用await调用的方法中发生异常时,我完全迷失了方向,调试器只是停在等待行。

public async void ThrowException() {
    int[] array = new int[] { 0, 1, 2 };
    int throwsException = array[3];
}
// Debugger stops here
await ThrowException();

问题是,我有一个等待方法,它在调用第100次到第200次之间的某个地方抛出错误。我不知道如何在调试器中识别问题是否有一种方法可以轻松识别有问题的代码行

VS Express 2013 for Windows不会在引发异常的(异步)行停止

您可以选择调试器将停止的异常,转到visual studio中检查调试/异常选项。

http://msdn.microsoft.com/en-us/library/038tzxdw.aspx

它看起来确实是一些内部windows错误,因此如果不配置调试器,调试器可能不会停止,因此您可以将visualstudio配置为即使在大多数内部windows异常中也停止,然后查看调用堆栈。

或者,您可以用try/catch块将代码封装在"public async void ThrowException()"函数中,并在catch 中放置一个断点