使用C#处理Web项目中的exception的方法

处理catch语句中发生的exception的最佳方法是什么。 目前我们正在将exception消息写入响应对象的write方法。 但我想要一个解决方案,通过该解决方案,用户只会获得一些错误信息,但我们必须获得有关错误的详细说明。 我想知道在C#中用于exception处理的不同实践。

对于Web项目并防止任何exception被推送到浏览器,您可以启用运行状况监视以及使用自定义错误页面。 如果您期望在catch语句中出现exception的可能性,那么只需在其中嵌套另一个try catch,以便它可以慷慨地使用。

在global.asax中,您还可以订阅Application_Error事件,该事件将针对未处理的exception进行调用

安德鲁

ASP.NET中的健康监控: http : //www.4guysfromrolla.com/articles/031407-1.aspx

想要解决这个问题对你有好处。 直接将exception消息写回用户可能会带来严重的安全风险 – 正如您已经发现的那样,exception消息可能包含大量可帮助恶意用户访问您站点的信息。

我来看看ELMAH (错误记录模块和处理程序); 这是向您的网络应用添加详细错误记录的简便方法。

我将详细错误记录到我的数据库,并将用户重定向到一般错误页面。

写入事件日志是其中一个选项。

正如REA_ANDREW所说,使用Health Monitoring以及自定义错误页面。

他没有明确说明的一件事是你应该避免将try / catch块放在一切的编程风格。 Health Monitoring将记录未处理的exception,并且自定义错误页面将向用户显示您希望用户查看错误的任何内容(如果有的话)。 但是只有在你没有捕获exception的情况下才会发生这种情况,所以不要让它们单独存在并让它们传播。