异常处理器
注册异常处理器
定义异常处理器
namespace App\ExceptionHandler;
use Hyperf\Framework\ExceptionHandler;
use Hyperf\HttpMessage\Stream\SwooleStream;
use Psr\Http\Message\ResponseInterface;
class FooExceptionHandler extends ExceptionHandler
{
public function handle(Throwable $throwable, ResponseInterface $response)
{
if ($throwable instanceof FooException) {
// 传入的异常是我们希望捕获的 FooException,我们格式化为 JSON 格式并输出到用户端
'code' => $throwable->getCode(),
'message' => $throwable->getMessage(),
], JSON_UNESCAPED_UNICODE);
return $response->withStatus(500)->withBody(new SwooleStream($data));
}
// 传入的异常不是该处理器希望处理的异常,不处理并交由下一个异常处理器处理
}
}