Php Laravel处理异常

Php Laravel处理异常,php,exception,error-handling,laravel,namespaces,Php,Exception,Error Handling,Laravel,Namespaces,我刚跳进拉威尔,这是我的第一个项目 现在我正在尝试向处理程序堆栈添加新的异常,但很抱歉,它不起作用,我不知道为什么 这是我的特例课 namespace Lib\Modules\Users\Exceptions; use Lib\Abstracts\AbstractException; class ConnotCreateUserException extends AbstractException { } 这是我的摘要 namespace Lib\Abstracts; class Ab

我刚跳进拉威尔,这是我的第一个项目

现在我正在尝试向处理程序堆栈添加新的异常,但很抱歉,它不起作用,我不知道为什么

这是我的特例课

namespace Lib\Modules\Users\Exceptions;

use Lib\Abstracts\AbstractException;

class ConnotCreateUserException extends AbstractException {

}
这是我的摘要

namespace Lib\Abstracts;

class AbstractException extends \Exception {

}
下面是我在app/start/global.php中的错误注册

App::error(function(Exception $exception, $code)
{
    Log::error($exception);
});

App::error(function(Lib\Modules\Users\Exceptions\ConnotCreateUserException $exception){
   return 'Sorry! Something is wrong with this account!';
});
当我抛出异常时,我得到了空白页。但我确信它是作为“\Exception”异常类型处理的


提前感谢

由于代码看起来不错,我刚刚用它做了一些测试,它对我很有效,只需通过执行以下操作确保正确加载了您的名称空间:

composer dump-autoload
但是,无论如何,我是这样做的:

1) 为其创建了PSR-4自动加载:

"autoload": {
    "classmap": [
        ...
    ],
    "psr-4": {
        "Lib\\" : "app/App/Lib"
    }
},
2) 使用您的内容创建文件:

app/App/Lib/Abstracts/AbstractException.php
app/App/Lib/Modules/Users/Exceptions/ConnotCreateUserException.php
3) 执行

composer dump-autoload
4) 打开
vendor/composer/autoload_psr4.php
只是为了确保它在那里:

return array(
    'Lib\\' => array($baseDir . '/app/App/Lib'),
);
5) 在我的
routes.php
文件中添加了这一切:

App::error(function(Exception $exception, $code)
{
    Log::error($exception);
});

App::error(function(Lib\Modules\Users\Exceptions\ConnotCreateUserException $exception){
   return 'Sorry! Something is wrong with this account!';
});

Route::get('/', function()
{
    throw new Lib\Modules\Users\Exceptions\ConnotCreateUserException("We should not get this message!", 1);
});
6) 点击:

我明白了

Sorry! Something is wrong with this account!

我不知道为什么它不适合我!但是,我不使用psr-4,而是使用psr-0。你认为这和我的问题有关吗?我的异常文件位于:app/Lib/Modules/Users/Exceptions/createUserexception.php中,我的composer.json自动加载为:“psr-0”:{“Lib”:“app”}。除了这个例外,其他所有的课程都很好。我试图转储自动加载的form composer,但结果是一样的。PSR-0或4,没关系,但您没有显示所有代码,所以很难说。你怎么提出这个例外?尝试向名称空间类添加根斜杠(),例如:
\Lib\Modules\Users\Exceptions\contractCreateUserexception
,有时这只是一个名称空间冲突,在异常处理中经常发生。我安装了一个新版本的laravel,并将所有旧文件移到其中。猜猜看!成功了。然而,目前我没有足够的时间深入研究这个问题,但我会在有时间的时候。我不会让它平静地过去。
Sorry! Something is wrong with this account!