在 ASP.NET 应用程序中捕获所有异常的最佳方法是啥?
Posted
技术标签:
【中文标题】在 ASP.NET 应用程序中捕获所有异常的最佳方法是啥?【英文标题】:What is the best method for catching all exceptions in a ASP.NET application?在 ASP.NET 应用程序中捕获所有异常的最佳方法是什么? 【发布时间】:2021-08-07 01:48:11 【问题描述】:在旧的 .NET 4.8 Web 窗体应用程序中捕获尚未手动捕获和处理的异常的最佳位置在哪里?
我目前正在使用Airbrake
,他们提供了一个 ASP.NET 模块来执行此操作,但是它依赖于 web.config
中存在的凭据,这是我无法使用的。
看看 elmah 等其他工具,它们的 module 钩子似乎会自动捕获到 HttpModuleBase
和 IExceptionFiltering
异常,如何手动执行此操作?
我猜测 Global.asax 的其中一个事件,但不太确定从哪里开始。
(目前无法更新 4.8 以上/非 Web Forms
)
【问题讨论】:
您在 global.asax 中看到了 Application_Error 事件?这将是一个很好的起点。 【参考方案1】:我同意梅森的观点:
public class Global : System.Web.HttpApplication
protected void Application_Error(object sender, EventArgs e)
// Insert error handling code here
这是在 global.asax 文件中创建的 Global 类的一部分。
【讨论】:
以上是关于在 ASP.NET 应用程序中捕获所有异常的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET:在 global.asax 中未捕获安全异常
ASP.NET MVC 控制器不会从 LINQ lambda 捕获异常