异常处理(调试)
异常是在程序运行时发生的不正常情况。 异常通常表示有需要调试的问题。 发生异常时,调试器将向**“输出”**窗口中写入一条异常消息,但在““选项”对话框 ->“调试”->“常规””对话框中禁用了该选项的情况除外。
发生异常时,调试器不一定会中断执行。
如果发生了非 ASP.NET 异常并且没有进行处理,调试器总是会中断执行。
您可以让调试器在引发异常时立即中断执行(在调用任何处理程序之前)。 有关更多信息,请参见如何:在引发异常时中断。
如果使用 [NIB] 12/13 如何:单步执行“仅我的代码” 进行调试,您还有第三个选项。 您可以让调试器在遇到任何未由用户代码(“我的代码”)中的处理程序处理的异常时中断执行。 有关更多信息,请参见如何:在遇到用户未经处理的异常时中断。
ASP.NET 有一个顶级异常处理程序,该处理程序在对异常进行处理时向浏览器用户显示错误页面。 该顶级异常处理程序会阻止未经处理的异常中断到调试器中,除非打开了“仅我的代码”。 请确保对 ASP.NET 调试启用“仅我的代码”。
请记住,如果发生了异常但根本没有进行处理,调试器总是会中断执行。 用户未处理的设置不会更改这一行为。
Visual Studio 调试器识别下列类别的异常:
C++ 异常
公共语言运行时异常
托管调试助手
本机运行时检查
Win32 异常
大多数异常都有相应的处理程序,用于在异常发生时做出响应。 这样程序便有可能从异常状况中恢复过来。 本机运行时检查没有处理程序。
在 Visual Basic 应用程序中,调试器将所有错误都表示为异常,即使使用 On Error 样式的错误处理程序。
对于 Visual Basic 和 C#,调试器现在具备了一项新增的异常助手功能,此功能可在发生异常时提供更多信息。
以下主题提供了有关异常处理的信息:
-
备注
(仅适用于 Visual Basic 和 Visual C#)如果在关闭异常助手的情况下发生未捕捉到的异常,会将一个伪变量 $exception 添加到“局部变量”窗口。可以展开该伪变量以查看异常的相关信息。