【问题标题】:does only throw statement in catch make any sense?只在 catch 中抛出语句有意义吗?
【发布时间】:2012-11-21 11:45:08
【问题描述】:

如果我有类似的异常代码

 catch
 {
      throw;

 }

这有意义吗?如果假设我不在函数中编写此代码,异常会在函数中被处理相似还是有什么区别?

【问题讨论】:

    标签: c# exception-handling


    【解决方案1】:

    代码本身什么都不做,但这并不意味着它一文不值。把它想象成一个存根。

    我已经让这样的代码投入生产,每次这意味着我在某个时候遇到了麻烦,并且在开发过程中我有额外的代码用于调试,后来被删除了......类似于一个额外的日志消息、MessageBox 或跟踪调用,甚至只是一个无操作类型的行 (string s = "";),我可以在其中设置一个断点。如果您回顾源代码管理,您将能够看到这些语句。

    我想把存根留在后面,以提醒这部分可能比看起来更难。

    不过,看看任何随机的代码,很多时候这些代码的存在是因为不了解的人只是认为那里应该有一个 try/catch 块。

    【讨论】:

    • 它有助于调试你的意思。
    【解决方案2】:

    不,没有意义,因为它没有处理异常,只是重新抛出

    【讨论】:

      【解决方案3】:

      没有。它本身真的没有任何意义。

      如果不添加某种日志记录或其他逻辑,这将等同于根本不使用 try/catch 块。

      【讨论】:

        【解决方案4】:

        这是多余的。它会捕获任何异常,然后重新抛出它。你最好不要使用catch,结果是一样的,代码也不会那么混乱。

        【讨论】:

          【解决方案5】:

          在这种情况下,如果您没有其他错误处理,则抛出实际上是重新抛出并且完全没有意义。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2015-12-19
            • 1970-01-01
            • 2017-02-05
            • 1970-01-01
            • 1970-01-01
            • 2016-05-26
            • 2021-09-09
            相关资源
            最近更新 更多