在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

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....