如何:调试 ASP.NET 异常
调试异常是开发可靠的 ASP.NET 应用程序的重要一步。 有关如何调试异常的常规信息,请参见异常处理(调试)。
若要调试未处理的 ASP.NET 异常,必须确保调试器能够在发生这些异常时停止。 ASP.NET 运行时有一个顶级异常处理程序。因此,在默认情况下,如果异常未经过处理,调试器始终不会中断。 若要在引发异常时中断调试器,必须在**“异常”对话框中为该特定的异常选择“发生以下异常时中断: 引发”**设置。
如果已启用“仅我的代码”,则当 .NET Framework 方法或其他系统代码中引发异常时,**“发生以下异常时中断: 引发”**不会导致调试器立即中断。 执行将继续,直至调试器命中非系统代码时才中断。 因此,不必在发生异常时逐句通过系统代码。
“仅我的代码”向您提供了另一个可能更有用的选项:“发生以下异常时中断: 用户未处理的”。 如果为异常选择此设置,则调试器将在用户代码中中断执行,但是仅当异常没有被用户代码捕获和处理时,它才这样做。 此设置会使顶级 ASP.NET 异常处理程序不起作用,因为该处理程序位于非用户代码中。
启用 ASP.NET 异常调试和“仅我的代码”
在**“调试”菜单上单击“异常”**。
将出现**“异常”**对话框。
在**“公共语言运行时异常”行上,选择“引发”或“用户未处理的”**。
若要使用**“用户未处理的”设置,必须启用“仅我的代码”**。 有关更多信息,请参见[NIB] 12/13 如何:单步执行“仅我的代码”。
采用 ASP.NET 异常处理的最佳做法
- 在可能引发您知道如何处理的可预见异常的代码周围放置 try … catch 块。 例如,如果应用程序调用 XML Web services 或直接调用 SQL Server,则应该将该代码置于 try … catch 块中,因为此过程中可能会发生大量异常。