首页后端开发PHPThinkphp5框架异常处理操作包括哪些

Thinkphp5框架异常处理操作包括哪些

时间2024-03-22 19:42:03发布访客分类PHP浏览801
导读:这篇文章主要给大家介绍“Thinkphp5框架异常处理操作包括哪些”的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考,希望这篇“Thinkphp5框架异常处理操作包括哪些”文章能对大家有...
这篇文章主要给大家介绍“Thinkphp5框架异常处理操作包括哪些”的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考,希望这篇“Thinkphp5框架异常处理操作包括哪些”文章能对大家有所帮助。
 


本文实例讲述了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.phpexception_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);

    }
    

以上就是关于Thinkphp5框架异常处理操作包括哪些的介绍,本文内容仅供参考,有需要的朋友可以借鉴了解看看,希望对大家学习或工作,想要了解更多欢迎关注网络,小编每天都会为大家更新不同的知识。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Thinkphp5框架异常处理操作包括哪些
本文地址: https://pptw.com/jishu/650836.html
python怎么实现对象持久,方法是什么 PHP中建立cURL请求的步骤是什么,具体如何实现

游客 回复需填写必要信息