我刚刚进入 laravel,这是我的第一个项目。
现在我正在尝试向处理程序堆栈添加新的异常,但很抱歉,它不起作用,我不知道为什么。
这是我的异常类
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)命中:
http://server.dev/
并收到了消息
Sorry! Something is wrong with this account!
关于php - Laravel 处理异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22458238/