结合前面项目中建立的参数验证层进行一次全局异常处理层使用过程的梳理。
全局异常处理层中BaseValidate继承TP5 的Validate类进行参数验证的执行和验证结果的返回,我们以id必须是整整书的验证为例来梳理全局异常处理层的使用过程。
1、建通用的参数异常类,这个类继承BaseException,代码如下:
public $code = 400; //状态码
public $msg = '参数错误';//异常信息
public $errorCode = 10000;//错误码
2、在BaseValidate类中的额验证失败的if语句分支中编写如下代码:
$e = new ParameterException(); //新建一个通用参数异常类的对象;
$e->msg = $this->error;//将通用异常对象中的错误信息属性用验证结果中的error属性覆盖,
throw $e;//将更新的异常抛出来
3、由于抛出来的异常是继承BaseException的类,所以在ExceptionHandler中返回JSON结构体。
网友评论