PHP Try-Catch无法捕获(不是'警告')

时间:2010-02-25 19:53:30

标签: php try-catch

我有一些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),但却遇到同样的问题......不知道为什么。

任何帮助?

2 个答案:

答案 0 :(得分:1)

好的,我发现它是一个命名空间问题:当你尝试use一个不存在的命名空间元素时,似乎PHP没有抱怨(在这种情况下use Framework\AuthenticationException当我需要时use Framework\Connector\AuthenticationException {{1}} 1}})。现在一切都很好了:)

干杯

答案 1 :(得分:0)

您还应该知道在PHP中使用@非常慢。请不要在您的生产代码中使用它。