【发布时间】:2012-01-06 06:56:12
【问题描述】:
PHP 的静态代码分析工具好像挺多的,能否请您推荐一款,可以检测 PHP 代码中抛出的异常,但从未被捕获的异常? (理论上可以停止PHP脚本的执行)。
我很高兴只看到像 throw new SomeException() 这样的东西,SomeException 扩展了 Exception。
我不是在寻找太复杂的东西 - 只是为了警告我,如果我从 index.php 运行 someFunctionThatCanThrow(因为里面有 throw 语句)(你明白了),我会遇到麻烦.即使在运行时这也永远不会发生。
谢谢。
【问题讨论】:
-
一般情况下不可能——不仅因为
eval "$any_string()";或$this->$anotherstring()。 -
@Piskvor,我很高兴只看到
throw new SomeException()。我尽量不在我的代码中使用任何类型的 PHP 魔法。 -
这样的工具必须经过所有可能的执行路径。这简直是太多了(不仅对于 PHP)。
-
@KingCrunch,我很高兴看到一些错误警报。例如。如果方法 a 可以抛出异常(有 throw 语句),并且它没有在任何地方被捕获(例如,从 main() 运行),则该工具将显示,即使设置了一些条件,也会使在运行时是不可能的。
-
@Fluffy,我也是,我正在回答那些说无法完成的人。