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