PHP框架异常处理,Thinkphp5框架异常处理操作实例分析

本文实例讲述了Thinkphp5框架异常处理操作。分享给大家供大家参考,具体如下:

异常处理

有时候服务端会报出我们无法感知的错误,TP5默认会自动渲染错误的形式,生产环境中这样的形式并不是我们想要的。

未知错误

1.exception\Handle.php下的render方法需要覆盖

创建ApiHandleException.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

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改写

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);

}

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值