tp5对异常处理操作是什么?
Admin 2021-05-18 群英技术资讯 1231 次浏览
文本主要大家介绍tp5异常处理的操作,有时候服务端会报出我们未知错误,TP5默认会自动渲染错误的形式,那么对此我们需要怎么处理呢?那么已知错误,又该怎么处理操作?
1.exception\Handle.php下的render方法需要覆盖
创建ApiHandleException.php
<?php
namespace 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
<?php
namespace 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改写
<?php
namespace 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);
}
关于tp5异常处理的操作就介绍到这,希望大家阅读完这篇文章能有所收获,更多tp5异常处理内容,大家可以继续关注其他文章
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解,本文实例讲述了PHP中abstract(抽象)、final(最终)和static(静态)原理与用法。分享给大家供大家参考,具体如下
YII2框架怎么实现自定义全局函数?有些时候我们需要自定义一些全局函数来完成我们的工作,那么使用YII2框架自定函数的方法有哪些呢?下面一起来看看。
今天小编就为大家分享一篇layui数据表格自定义每页条数limit设置,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
Session中文译名叫做“会话”,其本来的含义是指有始有终的一系列动作/信息。PHP session变量用于存储关于用户会话(session)的信息,或者更改用户会话(session)的设置。Session变量存储单一用户的信息,并且对于应用程序中的所有页面都是可用的。
一、总结1、php的全局变量:php的全局变量和C++,Java的全局变量不一样2、页面嵌套php:我在html页面中嵌套php代码的时候,php的全局变量好像和C++,Java的全局变量一样,好像是,记不清了3、php全局变量使用:php全局变量用global定义一下就好,就在外面定义global是错的,必须在函数内声明4、global定义全局变量:global定义全局变量的时候,不能一
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008