Skip to content
关注公众号,获取新课通知

全局异常处理


php
// app/ExceptionHandle.php

public function render($request, Throwable $e): Response
{
    // 参数验证
    if ($e instanceof ValidateException) {
        return json($e->getError(), 422);
    }
    // 调试模式
    if (env('APP_DEBUG')) {
         // 其他错误交给系统处理
         return parent::render($request, $e);
    }
    $headers = $e->getHeaders();
    return json([
        'msg'=>$e->getMessage(),
        'errorCode'=>$e->getStatusCode()
    ],array_key_exists('statusCode',$headers) ? $headers['statusCode'] : 404);
}
php
// app/common.php
// 抛出异常
function ApiException($msg = '请求错误',$errorCode = 20000,$statusCode = 404)
{
    abort($errorCode, $msg,[
        'statusCode' => $statusCode
    ]);
}

// 成功返回
function showSuccess($data = '',$msg = 'ok',$code = 200){
    return json([ 'msg' => $msg, 'data' => $data ],$code);
}

// 失败返回
function showError($msg = 'error',$code = 400){
    return json([ 'msg' => $msg ],$code);
}