我的异常似乎没有从父构造函数中冒出来。
这是一个简化版本:
class importer {
public function __construct()
{
$this->getFile(); // fills out $file with name or false on failure
if (!$this->file) {
throw new Exception("Sorry no file, so no can do!");
}
}
}
class childImporter extends importer {
pubclic function __construct()
{
parent::__construct();
}
}
try {
new childImporter();
nextFunction();
} catch (Exception $e) {
echo $e->getMessage();
}
永远不会调用 nextFunction
,并且catch块也不会被运行,整个事件抛出一个未捕获的异常错误并停止。
我认为异常应该冒出来了?
或者上面的代码是否可以工作而其他东西出错?
答案 0 :(得分:1)
因此,对于其他有类似问题的人来说,正如cbuckley指出的那样,问题就是命名空间问题。
我将Exception
的两次出现都更改为\Exception
,这很好地抓住了它。
我的ide中没有得到任何其他命名空间错误,因为PHPStorm非常好地自动导入了Symfony\Component\Config\Definition\Exception\Exception
的异常类,谁知道在哪里(因为我没有在其他任何地方使用任何Symfony组件!)。
希望这能帮助那些也度过漫长一天的人!