在ASP.NET中如何处理未处理的异常?

前端之家收集整理的这篇文章主要介绍了在ASP.NET中如何处理未处理的异常?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在Visual Studio中调试应用程序时,有2个选项用于突破异常.抛出异常后立即中断,只有当异常未被捕获时才会断开.这在开发桌面应用程序时工作正常.但是,在开发ASP.NET应用程序时,所有异常最终都被IIS中的代码所捕获.是否可以禁用此行为,以便当我的ASP.Net应用程序代码无法捕获异常时调试器中断?

编辑:

只是为了清楚,我不想破坏每当一个异常被抛出,多次他们被处理好我的代码,我不想停止每一个异常.我只想停止不被我的代码处理的异常.

编辑:

这在Visual Studio 2008中似乎不是一个问题.在Visual Studio 2003中,所有异常都被视为用户处理,因为ASP.NET运行时捕获了所有异常,以免导致Web服务器进程失效.看起来在Visual Studio 2008中,检查用户未处理的异常时,不会计算这种异常捕获类型.

解决方法

在Debug->例外情况下,检查公共语言运行时异常的“Throwwn”列(至少).检查’Thrown’为您感兴趣的其他例外.

现在,如果调试器被连接(主动调试或“附加到进程”),您的ASP.NET应用程序将在CLR异常(或您选择的任何其他异常)中断.

[编辑]

如果您想仅在未处理的例外情况下,在Debug->例外情况下,请在所有异常类型上取消选中“Thrown”,并确保对您感兴趣的异常进行“User-unhandled”.

Exception Interface http://scatterbright.com/debug-exceptions.png

然后,如果连接了调试器,您的ASP.NET应用程序会破坏您所选择的每个用户未处理的异常,而不管运行时将最终捕获异常的事实.样品:

Debugger breaking on User-unhandled exception http://scatterbright.com/debugcatchingunhandledex.png

猜你在找的asp.Net相关文章