thinkphp 如何自定义一个错误处理类

异常处理

tp5提供了一个异常处理接管

例如你新建了一个异常处理接管的类

- 手册:在config 中

// 异常处理handle类
exception_handle' => 'app\common\lib\ApiHandleException',

我在common\lib 下创建了一个 ApiHandleException 类

<?php
namespace app\common\lib;
use Exception;
use think\exception\Handle;
use app\common\lib\ApiException;

// 异常处理接管
class ApiHandleException extends Handle
{
protected $httpCode = 500;

/** $httpCode http 状态码
* $e->getMessage() 异常信息
*/
public function render(\Exception $e){

// 通过调用 ApiException 来获取当前的错误来源,默认是当是ApiException表明是系统识别的异常错误,默认为其他错误,也就try catch 触发的错误
// 检查归属的类型
if($e instanceof ApiException){
$this->httpCode = $e->httpCode;
}

// showJson 是我自定义的一个公共函数,用来返回一写json数据
// (int status:状态,$e->getMessage():返回的错误信息,[]:返回的数据,$this->httpCode 状态码)
return showJson(0,$e->getMessage(),[],$this->httpCode);
}

}

ApiException

<?php
namespace app\common\lib;
use Exception;

// 自定义异常
class ApiException extends Exception {

public $message = '';
public $httpCode = 500;
public $code = 0;

public function __construct($message='',$httpCode=500,$code=0){
$this->httpCode = $httpCode;
$this->message = $message;
$this->code = $code;
}

}

posted @ 2018-05-19 22:55  mysure  阅读(1231)  评论(0)    收藏  举报