laravel-response
laravel-response copied to clipboard
需求自定义一个异常返回状态码和错误提示
起因: https://github.com/jiannei/laravel-response/blob/f33e30dd5c25f2bbf2ab278a7c04738bf16731fa/config/response.php#L31
在配置文件中‘exception’ 相当于一个异常只能有一个状态码,当我需求是需要定义100个或则更多的时候 ,按照这个逻辑我就需要定义出100个或则更多的异常
期望: 定义一个异常,然后我们可以直接抛出这个异常,也可以直接继承这个异常,在异常中响应对应的状态码
我目前的做法是: 首先我定义一个异常类
<?php
namespace Jiannei\Response\Laravel\Support;
class ResponseException extends \RuntimeException
{
public function __construct(string $message = '', $code = 201)
{
parent::__construct($message, $code);
}
}
然后我异常处理Handler进行拦截
protected function prepareJsonResponse($request, $e)
{
if (is_subclass_of($e, ResponseException::class) || get_class($e) === ResponseException::class) {
return Response::fail($e->getMessage(), $e->getCode(), $this->convertExceptionToArray($e));
}
-------------------------略过您的代码------------------------------------------------------
}
是希望同一个异常能设置不同的响应code吗
通过抛出的异常 响应message =异常的内容, 响应code = 异常的状态码