【发布时间】:2013-04-10 21:48:06
【问题描述】:
调试生产代码我遇到了一些我以前从未见过的东西,并且不知道它的有效用途。在我们的一个控制器的几种方法中,我们有 try-catch 块。有趣的是,其中一个 catch 中有 2 个 throw 语句。
有任何理由有 2 个 throw 语句吗?如果是这样,在什么情况下这有意义?
try
{
//statements
}
catch (SoapException se)
{
//Log statement
return null;
}
catch (Exception ex)
{
//Log statement
throw;
throw;
}
【问题讨论】:
-
我只是好奇,
throw语句真的像帖子中显示的那样是连续的,还是在实际代码中只是逻辑上连续的? -
它们实际上是连续的,这也是为什么我看到它时感到如此奇怪的原因。我在想,就像这里的答案一样,第二次投掷永远不会达到(即使达到了,又有什么意义呢?)所以这很令人困惑。
-
感谢大家的理智检查(即答案)。
标签: c# exception-handling try-catch throw