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

时间:2009-04-02 09:54:24

标签: c# exception-handling

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

5 个答案:

答案 0 :(得分:7)

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

在global.asax中,您也可以订阅Application_Error事件,该事件将被调用以处理未处理的异常

安德鲁

ASP.NET中的运行状况监控:http://www.4guysfromrolla.com/articles/031407-1.aspx

答案 1 :(得分:4)

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

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

答案 2 :(得分:2)

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

答案 3 :(得分:1)

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

答案 4 :(得分:1)

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

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