php - Laravel 处理异常

标签 php exception error-handling laravel namespaces

我刚刚进入 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/

相关文章:

php - div 中的 css 菜单代码内容

exception - 编写自定义异常类时应该考虑哪些因素?

c# - Entity Framework 记录任何错误

error-handling - 修改后的Rust Book猜游戏查询

go - 如何编写 “exception oriented”代码而不是 “if-error oriented”代码?

php - Route.php 中的授权和身份验证 : Laravel 5. 1

javascript - php 中新行的 jQuery 语法是什么?

php - 同一服务器上的多个 Laravel 设置

android - 有没有办法在 Android 下的 alert 中显示自定义异常?

powershell - 如何在Powershell中强制执行文件操作?