代码之家  ›  专栏  ›  技术社区  ›  DCNYAM

ASP.NET错误处理

  •  10
  • DCNYAM  · 技术社区  · 15 年前

    然而,我读到了 ELMAH 虽然这看起来很有趣,但应用程序错误似乎是更简单的方法。

    我读过其他一些问题,人们,包括我自己,都提出了这样或那样的建议。我想知道的是,使用一种方法是否比使用另一种方法有显著的好处,为什么?

    2 回复  |  直到 15 年前
        1
  •  8
  •   Ben Scheirman    15 年前

    Elmah是一个很棒的项目,我们将其用于所有ASP.NET应用程序。它不仅为您记录未处理的错误,还可以获取整个过程 用户看到的页面,其中包含很多详细信息。

    对于配置中的3行和dll引用,我认为这是一个扣篮。

        2
  •  1
  •   stevemegson    15 年前

    我想ELMAH的主要缺点是它可能会对你需要的东西造成过度伤害。如果它记录和存储的信息比您在自己的实现中要多,那么这在存储和处理方面是不必要的开销。您还需要考虑如何确保访问ELMAH控制台的安全,因为这些异常详细信息可能包含您应用程序的有趣细节(这并不困难,但您以前没有过这种担心)。

    另一方面,一旦您确定某个顽固的bug需要您自己的实现,您自己的实现可能会增长到记录所有这些额外的信息,您真的关心减少显示错误页面所需时间的几分之一秒吗?有可能你最终会构建自己的ELMAH版本,所以为什么不直接使用ELMAH来节省时间呢。

    我还发现,通过ASP.NET的运行状况监视处理任何异常日志记录都很有用。这使得在web.config中控制日志记录的类型和级别变得很容易,并且还允许记录在try…catch中处理的异常,而不会出现应用程序错误。创建一个扩展WebRequestErrorEvent的自定义HandledExceptionEvent类,您可以在任何catch块中创建并引发这些事件,在这些块中,您确实希望知道即使已处理异常,也会发生异常。