在Visual Studio中调试应用程序时,有两个用于中断异常的选项.抛出异常后立即中断,仅在未捕获异常时中断.这在开发桌面应用程序时工作正常.但是,在开发ASP.NET应用程序时,所有异常最终都会被IIS中的代码捕获.是否可以禁用此行为,以便在我的ASP.Net应用程序代码无法捕获异常时调试器中断?
为了清楚起见,我不想在抛出异常时中断,因为很多时候我的代码处理得很好,而且我不想停止每个异常.我只想停止我的代码未处理的异常.
这似乎不是Visual Studio 2008中的问题.在Visual Studio 2003中,所有异常都被视为用户处理,因为ASP.NET运行时捕获了所有异常,以免降低Web服务器进程.似乎在Visual Studio 2008中,在检查用户未处理的异常时,不计算此类型的异常捕获.
在Debug-> Exceptions下,检查Common Language Runtime Exceptions的"Thrown"列(至少).检查'Thrown'以了解您感兴趣的其他例外情况.
现在,如果附加了调试器(活动调试或"附加到进程"),您的ASP.NET应用程序将破坏CLR异常(或您选择的任何其他异常).
[编辑]
如果你想打破只在未处理的异常,调试-下>例外,取消对所有的异常类型"时抛出",并确保"用户未处理"被选中您感兴趣的例外.
然后,如果附加了调试器,那么无论运行时最终会捕获异常,您的ASP.NET应用程序都会在您选择的每个用户未处理的异常中断.样品: