Lumen错误码定义以及错误处理抛出

最近对项目进行了重构,将以前诟病的代码全部删了,重新写了,这里介绍下Lumen里面如何简单的拦截掉所有错误,达到“上报”和“错误码”的功能。

了解Lumen的错误处理文件及函数

文档地址:https://d.laravel-china.org/docs/5.4/errors#introduction

从文章里可以看出Lumen和Laravel的Exception处理,都可以在App\Exceptions\Handler中进行自定义

image.png

然后查看这个文件,会发现这个文件包含ReportRendor两个方法,具体方法详见文档

image.png

错误码定义

新建一个Responser.php,内容大致包括:错误码定义的数据(也可用.json文件替代)成功数据处理错误处理三个方法。

image.png
image.png
image.png

注:successerrorif count() > 0是为了对当数据集返回为空时候的处理,具体百度下json_encode的预定义常量:JSON_FORCE_OBJECT

触发异常

在我的项目中,项目分为了ControllerServiceModel三层,触发异常的处理,我是放在Service层的,Service层是对业务逻辑进行运算的,所以各种错误应该由这里报出

image.png

Controller层只需要无脑调用方法即可

image.png

异常处理

修改render方法,对Exception做一个判断,如图:

image.png

别问我在哪里找的这些方法,我也是看源码看到的,没找到哪里有文档 (/笑哭)

至此这个就做完了,主要是需要对异常进行统一管理,于是采用了异常来做这个错误码的处理,还可以甄别开发环境下切换报错信息,保证正式环境中会及时上报错误信息也不会向用户透露私密的错误信息。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容