Thinkphp5框架异常处理操作实例分析
发布:smiling 来源: PHP粉丝网 添加日期:2022-03-12 13:30:38 浏览: 评论:0
本文实例讲述了Thinkphp5框架异常处理操作,分享给大家供大家参考,具体如下:
异常处理
有时候服务端会报出我们无法感知的错误,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);
- }
Tags: Thinkphp5异常处理
- 上一篇:Thinkphp5框架中引入Markdown编辑器操作示例
- 下一篇:最后一页
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)