Laravel异常处理扩展

在APP开发的时候,经常会遇到因为服务端报错而接口挂掉的情况.作为开发者要避免出现这样情况.除了严格对接口的输入输出做控制,也要对异常处理类进行扩展,从而达到完美避免接口挂掉的情况.

以下是基于Laravel框架的异常处理扩展.一旦出现异常情况,就发邮件给管理员,从而及时查看.

//目录app/Exception/Hander.php
    public function render($request, Exception $e) {
        if ($e instanceof ModelNotFoundException) {
            $e = new NotFoundHttpException($e->getMessage(), $e);
        }
        if ($request->is('api/*')) {
            if ($e instanceof NotFoundHttpException) {
                return response(AjaxCallbackMessage('请求接口不存在!', false), 404);
            }
            $key = md5($request->fullUrl());
            if (\App::environment() === 'production' && !(\Cache::has($key) ? \Cache::get($key) : false)) {
                //发送短信提醒
                //SendSMS(18058190409, '接口:'.$request->fullUrl().'异常!', 'interface_exception');
                \Cache::put($key, true, 30);
                if (!$e instanceof \Symfony\Component\Debug\Exception\FlattenException) {
                    $e = \Symfony\Component\Debug\Exception\FlattenException::create($e);
                }
                $exception = new \Symfony\Component\Debug\ExceptionHandler();
                $content = $exception->getContent($e);
                $css = $exception->getStylesheet($e);
                \Mail::queue('errors.api.mail', ['url' => $request->fullUrl(), 'request' => $request->all(), 'content' => $content, 'css' => $css], function ($message) {
                    $message->to('xihuan@tyrbl.com')
                            ->cc('zhangyl@tyrbl.com')
                            ->subject('商圈接口异常');
                });
            }
            return response(AjaxCallbackMessage('服务器累了,稍后再试!', false));
        }
        return parent::render($request, $e);
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 必备品文档:DocumentationAPI: API Reference视频:Laracasts速查表:Lara...
    daos阅读 4,829评论 0 4
  • 人的生长过程是件很奇妙的事情,内外交织又反向延长。 随着年岁的过去,我们的身体在日渐长大,产生着各种外在的变化,或...
    木头_afac阅读 1,371评论 0 0
  • 如今社会发展迅速,节奏越来越快,不得不压缩自己的时间去完成更多的事情。然而就在忙碌中不时的就心里的落差忽高...
    神秘的Q阅读 2,981评论 0 0
  • 2018年12月3日 今天一大早去本部开晨会,早上醒了无数次,就是赖着不想起来,赖到最后不行了,终于起身收拾好出门...
    fairly鱼阅读 46评论 0 0
  • (01.30) 晚上9点多的时候,突然一则消息在各个微信群里炸开了:「头脑王者」小程序被微信官方禁了! 个人之前推...
    Xueming阅读 3,214评论 0 0