时间:2021-05-26
本文实例讲述了Thinkphp5框架异常处理操作。分享给大家供大家参考,具体如下:
有时候服务端会报出我们无法感知的错误,TP5默认会自动渲染错误的形式,生产环境中这样的形式并不是我们想要的。
1.exception\Handle.php下的render方法需要覆盖
创建ApiHandleException.php
<?phpnamespace app\common\lib\exception;use think\exception\Handle;class ApiHandleException extends Handle { /** * http 状态码 * @var int */ public $httpCode = 500; public function render(\Exception $e) { return show(0, $e->getMessage(), [], $this->httpCode); }}2.修改config.php的exception_handle配置项
我们在判断一个数据是否合法的时候,若不合法则抛出异常。
例如:
if($data['msg'] != 1){ throw Exception('数据异常'); }使用内置的异常http状态码始终为500
1.创建ApiException.php
<?phpnamespace app\common\lib\exception;use think\Exception;class ApiException extends Exception { public $message = ''; public $httpCode = 500; public $code = 0; /** * @param string $message * @param int $httpCode * @param int $code */ public function __construct($message = '', $httpCode = 0, $code = 0) { $this->httpCode = $httpCode; $this->message = $message; $this->code = $code; }}2.对ApiHandleException.php改写
<?phpnamespace app\common\lib\exception;use think\exception\Handle;class ApiHandleException extends Handle { /** * http 状态码 * @var int */ public $httpCode = 500; public function render(\Exception $e) { if ($e instanceof ApiException) { $this->httpCode = $e->httpCode; } return show(0, $e->getMessage(), [], $this->httpCode); }}在开发环境的时候依旧使用异常渲染的模式
在ApiHandleException.php中添加代码
if(config('app_debug') == true) { return parent::render($e); }更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了TP5(thinkPHP5)框架mongodb扩展安装及特殊操作。分享给大家供大家参考,具体如下:ThinkPHP5.0MongoDb驱动首先安装
本文实例讲述了thinkphp5框架扩展redis类方法。分享给大家供大家参考,具体如下:笔者在开发时发现,thinkphp5的自带redis类方法,只有简单的
本文实例讲述了tp5(thinkPHP5框架)captcha验证码配置及验证操作。分享给大家供大家参考,具体如下:1-安装composerrequiretopt
本文实例讲述了thinkphp5框架路由原理与用法。分享给大家供大家参考,具体如下:路由理解概括的说:路由就是网络请求的url与thinkphp应用层的逻辑处理
本文实例讲述了tp5(thinkPHP5)框架数据库Db增删改查常见操作。分享给大家供大家参考,具体如下:添加数据insert$data=['name_cn'=