asp.net-mvc - 在 MVC 中使用 ELMAH 时我需要 Try Catch 吗?为什么?

标签 asp.net-mvc error-handling elmah.mvc

对于你们中的一些专家来说,这可能听起来很傻……但我试图理解这一点!

我试图在我的 MVC 应用程序中实现 ELMAH,突然想到这里之前确切提出的问题 Is it okay to use Elmah instead of try/catch?

但我有另一个问题..为什么?

我不使用 Try catch 和 elmah 记录异常并且用户显示错误页面。那么为什么我需要 Try/Catch 呢?

在我想到 try/catch/finally 的一种情况下涉及 SQLTransations 的应用程序。在其他情况下,我可以跳过并只使用 ELMAH

究竟什么是正确的方法?希望我能澄清这一点:)
谢谢

最佳答案

因为没有 try/catch,当异常发生时代码会立即停止执行。这可能很糟糕,原因有很多,包括:

  • 需要处理的元素
  • 回滚/提交数据库事务

  • 还有更多,但这给了你一个好主意。 Try/Catch 允许您捕获异常,选择是否处理它,然后继续生活而不会导致程序崩溃。此外,谁真的希望他们的代码因为 NullReferenceException 而死?更好的是,如果它是一个您无法控制的错误,例如 NetworkTimeout 问题、过早的 HttpConnection 关闭等。在适当的情况下处理您的错误只是一个好习惯。这并不是说将整个代码块包装在 try/catch 中!

    如果您即使在捕获并处理异常时仍想登录到 ELMAH,则可以执行以下操作:
    try {
      ...
    }
    catch (Exception e) {
      Elmah.ErrorSignal.FromCurrentContext().Raise(e)
    }
    

    关于asp.net-mvc - 在 MVC 中使用 ELMAH 时我需要 Try Catch 吗?为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16220030/

    相关文章:

    asp.net-mvc - ViewBag 幕后花絮

    javascript - 脚本包中的 ASP.NET MVC {version} 通配符选择调试版本?

    php - 如何修复 PHP 中的 "Undefined variable"错误?

    python-3.x - 代码中的字符串索引超出范围错误

    javascript - 从 webforms 项目中的 javascript 文件调用 mvc Controller

    asp.net-mvc - 如何在 Linq 中参数化 bool 表达式?

    magento - 了解 Magento 错误日志输出

    c# - ELMAH 异常生成通用 "The service is unavailable"消息

    c# - 使用ELMAH在MVC中进行错误处理