PHP Autoload捕获新的异常

时间:2014-08-06 12:07:42

标签: php exception-handling autoload

我定义了以下代码以自动包含我的类:

spl_autoload_register(function($class) {
   require $class . '.php';
});

然后我有一个第三方类(在helpers命名空间内),其中包含以下行:

throw new Exception('...');

问题是autoload函数试图查找名为helpers \ Exception.php的文件。因此,我将上面的功能改为:

spl_autoload_register(function($class) {
    if ($class != 'helpers\Exception') {
        require $class . '.php';
    }
}

然后它抛出一个异常,说没有找到类助手\ Exception。如果有人可以帮我告诉我如何能够简单地显示第三方课程中抛出的原始异常,我将不胜感激。

2 个答案:

答案 0 :(得分:1)

我设法让这个工作。我不得不将以下内容添加到课程顶部:

use Exception;

另一种解决方案是改变:

throw new Exception('...');

为:

throw new \Exception('...');

但是这个解决方案需要在整个过程中改变每一种情况。

答案 1 :(得分:0)

您需要转义\字符。试试这个:helpers\\Exception