同学我们可以自定义异常文件,比如ClientException,然后统一异常处理的时候判断下只要是instanceof 属于这个的,就可以给前端看,否则就不给,在business里面的异常使用 throw new ClientException('验证码有误')
<?php
declare(strict_types=1);
namespace App\Exceptions;
use Exception;
class WarnException extends Exception
{
// 状态码
public $status = 500;
// 错误提示
public $message = '未知错误';
// 错误码
public $code = 0;
// 错误返回给客户端的其他数据
public $data = [];
/**
* ApiException constructor.
* @param array|string $params
*/
public function __construct($params = [])
{
is_string($params) && $this->message = $params;
if(is_array($params)){
array_key_exists('status',$params) && $this->status = $params['status'];
array_key_exists('code',$params) && $this->code = $params['code'];
array_key_exists('msg',$params) && $this->message = $params['msg'];
array_key_exists('message',$params) && $this->message = $params['message'];
array_key_exists('data',$params) && $this->data = $params['data'];
}
}
}
if ($exception instanceof ClientException) {
// 自定义错误,错误是可以直接展示给客户端的
return returnJson($exception->code, $exception->message, $exception->status, $exception->data);
}