doing / extp
基于ThinkPHP5的异常类
dev-master
2018-03-29 07:04 UTC
This package is auto-updated.
Last update: 2024-11-15 12:38:05 UTC
README
介绍
- 是基于ThinkPHP5(下简写TP5)重写的抛出异常类,故只能用于TP5内部不能适用于其他框架
- 请用composer安装此包
- 安装命令:
composer require doing/extp 版本号
。例composer require doing/extp 1.*
- 请先更改TP5的配置选项引入此类(在application/config.php里面搜索
exception_handle
,默认值是空修改成'exception_handle' => '\extp\core\ExceptionHandler',
使用步骤
前提:必须引用对应的类如:
use extp\diy\NullException;
使用场景一:快速抛出异常
//直接New一个application/lib/exception/下的自定义异常对象快速抛出异常
throw New NullException();
说明:取对象类的默认属性值:msg,error_code,code
返回的信息
{
msg: "我是提示信息",//提示信息
error_code: "40000",//自定义错误码
request_url: "/credits/public/index.php/api/index/index"//请求地址
}
说明:http的状态码code是提现在header上
使用场景二:自定义返回信息
$exceptions['msg'] = '我是提示信息';
$exceptions['error_code'] = '40000'//自定义错误码
exceptions['code'] = '401'//http的状态码
throw New NullException($exceptions);
说明:自定义类有三个属性:需要更改哪一个就传哪一个,如果只修改提示信息msg和自定义错误码,其他信息就使类的默认属性值,那就就只需要传msg和error_code
以上代码可以简写throw New NullException(['msg'=>'我是提示信息','error_code'=>'4000'])
使用时不建议修改code属性,因为是基于http的状态码封装的
自定义类的封装
- 建议按Http的状态码分类封装:如NullExcption就代码的是抛出http状态码为404异常:用于查找无数据等情况抛出
- 自定义错误类放在application/lib/exception(在application下创建一个文件夹lib,把下载的doing/extp/exception的
exception
文件夹剪切到以上目录的lib
下)- 建议直接复制我已封装的类进行修改(doing/extp/exception里面的文件)
- 3中主要修改地方:文件名和类名保持一直且采用驼峰命名首字母大写全部采用Exception结尾。修改三个对应属性值code,msg,errorCode
- 已封装的4个自定义类说明:NullException(用于404异常及查找无数据等),ParamsException(用于客户端请求的参数错误异常),SuccessException(用于操作成功如删除成功等操作),主要说下
ServiceException
类的使用:如果code给600就是抛出第三方的错误:比如调用微信支付时第三方给的错误异常,如果code给500就是我们自己服务器的错误