我有一些PHP代码应该导致并捕获两个例外:
try{
@$this->connector->connect(); // Suppress the default warning (doesn't effect 'throw')
} catch(BadArgumentException $e) {} // Works, no error, following code executes.
try{
@$this->connector->connect(array('user' => 'Doesn\'t exist', 'pass' => 'invalid'));
} catch(AuthenticationException $e) {} // DOESN'T WORK - Passed to the exception handler.
echo 'Not executed!'; // This isn't executed.
我尝试将它们推广到catch(Exception $e)
,但却遇到同样的问题......不知道为什么。
任何帮助?
答案 0 :(得分:1)
好的,我发现它是一个命名空间问题:当你尝试use
一个不存在的命名空间元素时,似乎PHP没有抱怨(在这种情况下use Framework\AuthenticationException
当我需要时use Framework\Connector\AuthenticationException
{{1}} 1}})。现在一切都很好了:)
干杯
答案 1 :(得分:0)
您还应该知道在PHP中使用@非常慢。请不要在您的生产代码中使用它。