内容简介:Laravel 自带错误和异常处理,App\Exceptions\Handler 负责上报异常和如何返回内容,以及未登录的处理。App\Exceptions\Handler 位于 app\Exceptions\Handler.php,下面介绍这个类的属性和用法。在 $dontReport 中可以定义忽略的异常类名:这些异常就不会经过 report 方法。
Laravel 自带错误和异常处理,App\Exceptions\Handler 负责上报异常和如何返回内容,以及未登录的处理。App\Exceptions\Handler 位于 app\Exceptions\Handler.php,下面介绍这个类的属性和用法。
忽略异常
在 $dontReport 中可以定义忽略的异常类名:
protected $dontReport = [ \Illuminate\Auth\AuthenticationException::class, \Illuminate\Auth\Access\AuthorizationException::class, \Symfony\Component\HttpKernel\Exception\HttpException::class, \Illuminate\Database\Eloquent\ModelNotFoundException::class, \Illuminate\Validation\ValidationException::class, ];
这些异常就不会经过 report 方法。
几个重要方法
主要介绍这三个方法,report,render 和 unauthenticated 的用法。
report方法
report 方法可以用来记录日志,可以根据不同的异常类型(包括自定义异常类型),如 ClientException,ConnectException 定制不同的日志级别和日志内容。
if ($exception instanceof ABCException) {
Log::emergency('ABC异常', $context);
} else if ($exception instanceof HeheException) {
Log::info('Hehe异常', $context);
}
report 方法没有返回值,也不应该在这里中断程序。
render方法
render 方法可以根据不同的异常类型,返回不同的数据。如:
if (get_class($exception) == 'Exception' || $exception instanceof NotAllowedException) {
return response()->json(['message' => $exception->getMessage()], 400);
} elseif ( $exception instanceof ValidationException) {
return response()->json(['message' => '校验失败', 'errors'=> $exception->validator->errors()], 400);
}
unauthenticated
在访问需要登录态的页面时,用户未登录就会进入这个方法进行处理,举个例子说明:
protected function unauthenticated($request, AuthenticationException $exception)
{
if ($request->expectsJson()) {
return response()->json(['error' => 'Unauthenticated.'], 401);
}
//如果是后台页面未认证,跳转到后台登陆页面
$guard = $exception->guards();
if (in_array('admin', $guard)) {
return redirect()->guest('/admin/login');
}
return redirect()->guest('login');
}
如果是返回 json,则统一返回格式。
默认情况下返回前台的登录页,如果是访问后台页面未登录,则跳转到后台登录页。
官方文档
Laravel 5.6
以上所述就是小编给大家介绍的《Laravel 错误和异常处理用法》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- MySQL常见SQL错误用法
- 8种常见SQL错误用法
- 8种常被忽视的SQL错误用法
- Java8 Optional 几个常见错误用法
- MySQL · 性能优化 · MySQL常见SQL错误用法
- 你应该避免的8种常见SQL错误用法!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
银行3.0:移动互联时代的银行转型之道
[澳]布莱特·金(Brett King) / 白 宫 施 轶 / 广东经济出版社 / 2014-12 / 88.00元
银行未来会怎样,银行下一步该怎么做?银行如何在客户行为变化、科技变化,以及新的非银行竞争者不断涌入等时代变化的形势下,在未来取得成功? 这是第一本透彻深入地全面呈现当今银行业的内外形势与状况的书,内容涉及技术变化、客户行为变化、涌现的外部竞争者,银行现有组织架构、流程模式、制度思维、人员结构、互动渠道、营销方式等。具体包括低网点化,ATM、网站、呼叫中心的落伍,以及智能手机、社交媒体、移动支......一起来看看 《银行3.0:移动互联时代的银行转型之道》 这本书的介绍吧!