我可以知道在Visual Studio 2015中调试期间执行的最后一条语句吗?

Tim*_*Tim 2 c# exception visual-studio

我正在调试Visual Studio 2015中的C#程序.

执行从try语句中的代码内部跳转到catch语句.

如何找出最后执行的语句,即引发异常的语句?

谢谢.

Dan*_*eld 6

看看你的堆栈跟踪:

static void Main(string[] args)
{
    try
    {
        Console.WriteLine("starting");
        throw new Exception("Testing");
        Console.WriteLine("unreachable");
        Console.ReadKey();
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.ToString());
        throw;
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

开始

System.Exception:在C:\ Users\dfield\Documents\Visual Studio 2015\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs中的ConsoleApplication1.Program.Main(String [] args)进行测试:第161

161号线是 throw new Exception("Testing");

这个方法可能有一些例外(例如),例如当a StackOverflowExceptionOutOfMemoryException发生时(我认为),或者自定义异常移除或以其他方式改变StackTrace对象Exception(我已经看到这样做是为了混淆堆栈跟踪返回给不应该看到它的客户端).您可能还需要查看InnerException堆栈跟踪.