spl_autoload_register与throw new Exception相冲突

我自己搭建了一个自动引入文件的架构

spl_autoload_register自动载入文件
但是我在控制器中使用throw new Exception的时候报了错误

**Warning: require(/www/wwwroot/www.entercode.cn/api/Rest/Exception.php): failed to open stream: No such file or directory in /www/wwwroot/www.entercode.cn/api/Rest/Loader.php on line 5
Fatal error: require(): Failed opening required '/www/wwwroot/www.entercode.cn/api/Rest/Exception.php' (include_path='.:/www/server/php/70/lib/php') in /www/wwwroot/www.entercode.cn/api/Rest/Loader.php on line 5**

也就是说spl_autoload_register把exception也一起给自动载入了
有什么办法可以解决这个吗?


后面我在autoload做了一个判断是否存,改成了

public static function autoload($class){
    $file=BASEDIR.'/'.str_replace('\\', '/', $class).'.php';
    if(file_exists($file)){
        require $file;
    }
} 

但是还是报
Uncaught Error: Class 'RestException' not found 这个错误

阅读 2.8k
3 个回答
throw new \Exception("error");

尝试一下

当你使用spl_autoload_register函数注册自动载入后还需要使用spl_autoload_call 或者spl_autoload来调用你需要的类。

发你的 spl_autoload_register 注册的函数.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题