异常处理器

注册异常处理器

定义异常处理器

  1. namespace App\ExceptionHandler;
  2. use Hyperf\Framework\ExceptionHandler;
  3. use Hyperf\HttpMessage\Stream\SwooleStream;
  4. use Psr\Http\Message\ResponseInterface;
  5. class FooExceptionHandler extends ExceptionHandler
  6. {
  7. public function handle(Throwable $throwable, ResponseInterface $response)
  8. {
  9. if ($throwable instanceof FooException) {
  10. // 传入的异常是我们希望捕获的 FooException,我们格式化为 JSON 格式并输出到用户端
  11. 'code' => $throwable->getCode(),
  12. 'message' => $throwable->getMessage(),
  13. ], JSON_UNESCAPED_UNICODE);
  14. return $response->withStatus(500)->withBody(new SwooleStream($data));
  15. }
  16. // 传入的异常不是该处理器希望处理的异常,不处理并交由下一个异常处理器处理
  17. }
  18. }