关于Laravel5中异常处理

项目中通常会遇到各式各样的异常处理,简单的分为参数验证类异常,数据库操作类异常,权限类异常,基础类异常。一个请求从开始到结束,可能会产生参数验证类异常,数据库操作类异常,权限类异常这几类,最后在控制器中进行基础异常的捕获。那么问题来了,如何在基础异常类中捕获到上述3类异常。
捕获代码如下
try{
        CreditService::getInstance()->actDailyLog($uid, $basic);
        CreditService::getInstance()->createCreditLog($uid, $modelName, $modelId, $basic);
    }catch (DevBaseException $e)
    {
        $this->delete();//
    }

其中
CreditService::getInstance()->actDailyLog($uid, $basic);
        CreditService::getInstance()->createCreditLog($uid, $modelName, $modelId, 

中可能抛出参数验证类异常,数据库操作类异常,权限类异常。
Lavarel5手册中写到:所有的异常都由 App\Exceptions\Handler 类处理。这个类包含两个方法: report 和 render 。

report 方法用来记录异常或把异常传递到外部服务,例如: BugSnag 。默认情况下, report 方法只基本实现简单地传递异常到父类并于父类记录异常。然而,你可以依你所需自由地记录异常。如果你需要使用不同的方法来报告不同类型的异常,你可以使用 PHP 的 instanceof 比较运算符:
/**
* 报告或记录异常。
*
* 这是一个发送异常到 Sentry、Bugsnag 等服务的好地方。
*
* @param  \Exception  $e
* @return void
*/
public function report(Exception $e)
{
if ($e instanceof CustomException)
{
    //
}

return parent::report($e);
}

我的项目中此处代码如下:
public function report(Exception $e)
{
    if( config('app.debug') && $e instanceof DevBaseException)
    {
        //TODO not sure what to do with custom exception, temporarily using system error pages.
    }

    return parent::report($e);
}

仍无法正确抛出异常。
有人有相关的经验分享下吗?
已邀请:

Jachase

赞同来自:

已解决

要回复问题请先登录注册