为什么有些人在抛出异常后返回?

Ale*_*lex 23 php exception

我在Github的一些代码中看到了

if($something_funky_happens){
  throw new \LogicException(...);
  return;
}
Run Code Online (Sandbox Code Playgroud)

这是必需的,还是不重要的?因为我知道在抛出异常后脚本停止,因此不会运行更多代码

mdo*_*mdo 31

无法访问的代码

我倾向于在代码中表示它是错误的.该声明无法访问.每个静态代码anaylsis工具都会抱怨这个无法访问的语句.即使在这种情况下没有任何危害,在检查代码时也会收到大量警告.如果关闭这些警告类型,您可能会错过代码中的其他逻辑错误.这是一个真正难闻的气味,需要修复.


nic*_*ckb 6

因为他们犯了错误,或者这是他们的个人喜好。不可能访问return该代码中的 ,但包含它并没有真正的坏处。

来自文档 (强调我的)

当抛出异常时,该语句后面的代码将不会被执行,并且 PHP 将尝试查找第一个匹配的 catch 块。

  • 没有“危害”,但如果您使用智能 IDE,它可能会抱怨无法访问代码。我建议不要编写这样的代码。例如,Jetbrains 使用提示“无法访问的语句”来标记此情况。 (3认同)