如果我有一个异常代码
catch
{
throw;
}
这有什么意义吗?如果假设我不在函数中编写此代码,异常会在函数中被处理相似还是有什么区别?
代码本身什么都不做,但这并不意味着它一文不值。把它想象成一个存根。
我已经让这样的代码投入生产,每次这意味着我在某个时候遇到了麻烦,并且在开发过程中我有额外的代码用于调试,后来被删除......就像一个额外的日志消息、消息框或跟踪调用,甚至只是一种无操作类型的行 ( string s = "";
),我可以在其中设置断点。如果您回顾源代码管理,您将能够看到这些语句。
我喜欢把存根留在后面,以提醒这部分可能比看起来更难。
然而,看看任何随机的代码,很多时候这段代码存在是因为一些不太了解的人只是认为那里应该有一个 try/catch 块。
不,它本身真的没有任何意义。
如果不添加某种日志记录或其他逻辑,这将等同于根本不使用 try/catch 块。
这是多余的。它会捕获任何异常,然后重新抛出它。你最好根本不使用catch
,结果是一样的,代码也不那么混乱。
在这种情况下,如果您没有其他错误处理,则抛出实际上是重新抛出并且完全没有意义。
不,没有意义,因为它没有处理异常,而只是重新抛出