资讯专栏INFORMATION COLUMN

API开发 – 让异常变得优雅

nemo / 2213人阅读

摘要:公司在做开发作为程序员难免会出点小哪如何捕获呢。在上出现通常会出现闪退和无法解析错误一直加载用到的框架是有一个想法。将错误也变成格式码定义为如果移动端发现错误为的话就温柔提醒并且服务端保存错误信息供开发者修改下面说下如何实现。

公司在做APP开发.作为程序员难免会出点小BUG!哪如何捕获呢。在APP上出现bug通常会出现闪退,和无法解析错误一直加载.

用到的框架是 ThinkPHP5.

有一个想法。将错误也变成json格式.code码定义为500 如果移动端发现错误为500的话 就温柔提醒.并且服务端保存错误信息.供开发者修改.

下面说下如何实现。~

首先修改配置项 application/config.php

// 异常处理handle类 留空使用 	hinkexceptionHandle
"exception_handle"       => "appcommonexceptionHttp",

原本是留空的 现在改为我们自定义的控制器

创建一个Http控制器 继承thinkexceptionHandle类 重写 render方法. 这里注意一点 最好不要用框架里的一些方法了.这个文件的启动顺序大于一些方法.

 500,
            "msg" => $e->getMessage(),
            "data" => "URL : http://".$_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]
        ];
        $error_info = json_encode($arr, 512) . PHP_EOL;
        echo $error_info;
        if (!is_dir("../runtime/errorlog/")) mkdir("../runtime/errorlog/", 0777, true);


        file_put_contents("../runtime/errorlog/" . date("Ymd", time()) . ".txt", $error_info, FILE_APPEND);
        exit;
    }
}

这样就能将thinkphp5原本的报错页面变成可识别的json串.喜欢的朋友请给一个支持

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26172.html

相关文章

  • Laravel 程序架构设计思路:使用动作类

    摘要:一个动作类,应该有一个能够说明其功能的名字,比如等。如果需要对我们的动作类实现某种适配器模式,这是非常方便的。使用单动作类的好处小巧而单一的逻辑域能够防止代码重复并提高代码的可重用性,保持稳定。易于针对各种场景进行独立测试。 showImg(https://segmentfault.com/img/remote/1460000015208092); 当我们谈论到应用程序的架构的时候,经...

    Caicloud 评论0 收藏0
  • 利用函数式优雅的重构API

    摘要:新建字典必要的验证参数不能为空调用封装数据到统一到结构体异常处理包括中抛出到自定义异常和未知异常统一包装到返回对象中这样子的代码在开发接口的时候比比皆是。 基础知识 在开始之前 假设你从未了解过函数式编程,本文不会教你函数式里面的各种概念。而是用实际案例让给了解到函数式编程的魅力,并且能够在合适的场景中应用。 ## 重构之前 基本代码如下 很普通的 springboot http接口。...

    bergwhite 评论0 收藏0
  • 如何优雅的退出应用和处理崩溃异常并重启

    摘要:退出应用的几种方式退出应用的方式很多,常见的也就下面四种。当发生时会转入该函数来处理如果用户没有处理则让系统默认的异常处理器来处理如果需要重启重启应用,得使用重启应用结束应用我们的方法用于弹出和收集信息。 写在前面 这是最近一些朋友问我的问题,我把它整理成了一个库,供大家享用,GitHub 地址:https://github.com/nanchen2251/AppManager 从四个...

    learn_shifeng 评论0 收藏0
  • 如何优雅地处理Async/Await的异常

    摘要:能够捕获非异步的异常。来匹配正常异常的情况。在中处理所有的异常如果出错,则退出。所以,的模式使得异常处理变得非常简洁。自从年双十一正式上线,累计处理了亿错误事件,付费客户有阳光保险核桃编程荔枝掌门对微脉青团社等众多品牌企业。 译者按: 使用.catch()来捕获所有的异常 原文: Async Await Error Handling in JavaScript 译者: Fundeb...

    villainhr 评论0 收藏0

发表评论

0条评论

nemo

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<