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


}

猜你喜欢

转载自www.cnblogs.com/ar13/p/9061992.html