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!