tp5对异常处理操作是什么?
Admin 2021-05-18 群英技术资讯 498 次浏览
文本主要大家介绍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 ajax confirm 删除,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
用于生产环境中的PHP需要对其进行优化,让PHP自身发挥更好的性能,除了写好PHP代码,还要配置好php-fpm以及php.ini调优。本文从内存、OPcache、上传、会话以及安全等方面讲解php.ini的配置调优。内存优化运行PHP时需要关心每个PHP进程要使用多少内存,php.ini中的memory_limit设置用于设定单个PHP进程可以使用的系统内存最大值。这个设
在laravel中,provider是一个应用程序的引导中心,也被称为服务提供者,是laravel程序的核心;包括应用程序在内,所有的Laravel核心服务都是通过服务提供者启动的,可以提供如身份信息服务、邮寄地址服务等。
PHP5新增了一个final关键字。如果父类中的方法被声明为final,则子类无法覆盖该方法。如果一个类被声明为final,则不能被继承。Example#1Final方法示例classBa...
这篇文章主要介绍了Laravel5.1 框架Request请求操作常见用法,结合实例形式分析了Laravel5.1 框架Request请求操作常见的属性和方法,及相关操作注意事项,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008