请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答

1回答

同学我们可以自定义异常文件,比如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);
}


0 回复 有任何疑惑可以回复我~
  • 提问者 帅的被狗撵 #1
    非常感谢!这正是我想要的
    回复 有任何疑惑可以回复我~ 2020-12-02 16:52:13
  • 提问者 帅的被狗撵 #2
    不过 我还是有点不太懂 ClientException 自定义类里面是什么,tp6我看自带了一个ClientException 客户端异常处理类,但是里面的参数不太明白
    回复 有任何疑惑可以回复我~ 2020-12-02 17:31:05
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信