百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>网页制作> Laravel中错误与异常处置的用法示例
分享文章到:

Laravel中错误与异常处置的用法示例

发布时间:05/20 来源:未知 浏览: 关键词:

在本文中,我们将商量 Laravel Web 框架中最重要和最少计议的功效之一 - 异常处置。 Laravel 带有一个内置的异常处置程序,可以让您轻松地以友好的方式报告和显现异常。

Laravel 自带错误和异常处置,AppExceptionsHandler 负责上报异常和怎样返回内容,以及未登录的处置。

AppExceptionsHandler 位于 appExceptionsHandler.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

http://www.baidow.com/tupian/lupian/20190520/o5yxvpqgehy

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有162人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板