首页> 实战笔录 >PHP开发笔记 >ThinkPHP ThinkPHP
TP5 接口设计中异常处理
作者:小萝卜 2019-11-21 【 TP5 】 浏览 2168
简介PHP提供 Exception 类来处理异常,new Exception('错误信息(默认为空)','错误代码(默认0)','异常链中前一个异常')然后可以通过,e -> getMessage() 获取异常信息,e -> getCode() 获取异常错误码
PHP提供 Exception 类来处理异常
new Exception('错误信息(默认为空)','错误代码(默认0)','异常链中前一个异常')
然后可以通过
e -> getMessage() 获取异常信息
e -> getCode() 获取异常错误码
处理异常
try {
//可能抛出异常代码
throw new Exception("Error Processing Request", 1);
} catch (Exception $e) {
// 1. 记录日志
// 2. 处理异常,程序继续进行 / 继续向上抛出异常 / 终止程序,打印异常错误
}
在ThinkPHP中,框架自带异常处理类,返回错误信息以HTML页面形式展示,如果程序出现错误开发人员没有主动捕捉异常,则会被框架捕捉,然后抛出HTML
当在接口设计中时,由于无法得知客户端类型,所以HTML的形式客户端可能无法解析,此时便需要重写异常类,以json的形式返回错误信息给客户端
异常分类:
- 自定义异常:通常是由客户端传递参数错误导致,此类异常不需要记录日志,但需要返回错误原因
- 服务器异常:代码错误导致异常,此类异常需要记录日志,但不需要返回错误原因
服务器异常错误一般由PHP或者框架抛出,自定义异常需要手动捕捉,然后抛出
实现:
在Application/common目录下新建 exception 目录,此目录为异常类库目录
Application/common/exception/ExceptionHandler (重写后的异常处理类)
这个类会判断异常来源,并作出相应处理
创建处理类后,需要修改对应配置文件,让这个类成为框架默认异常处理类
在application/config/app.php
// 异常处理handle类 留空使用 thinkexceptionHandle
'exception_handle' => 'appcommonexceptionExceptionHandler',
Application/common/exception/BaseException (自定义异常类基类,基础PHP自带异常类Exception)
自定义异常类
Application/common/exception/UserException (自定义异常,这里举例User模块的异常)
抛出自定义异常
此时异常展示不再是TP自带的HTML页,而是
很赞哦! (0)
相关文章
- tp6多应用模式下渲染视图报错D:\PhpstormProjects\tp6\app\admin\view\.html
- TP5.1实现微信小程序用户登录后端代码分享
- TP5 模型事务操作
- TP5 添加平铺文字水印,并设置文字之间的间距和文字的角度
- tp5随机查询几条数据
- TP5 关联模型使用(嵌套关联、动态排序以及隐藏字段)
- tp5实现文件下载,并对下载的文件重命名
- tp5 报错variable type error: array怎么解决
- TP6/Mysql源生查询当前月每天的数据统计
- TP6使用Jwt验证token时报错Cannot pass parameter 3 by reference
