您好,登录后才能下订单哦!
本篇内容介绍了“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.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);
    }“Thinkphp5框架异常情况如何处理”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。