From af4492e3aa65af75dd8c17a487433d1c01b7ca95 Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Tue, 5 May 2026 19:05:41 +0800 Subject: [PATCH] feat(push): add GlobalExceptionHandler to expose actual error details Co-Authored-By: Claude Sonnet 4.6 --- .../controller/GlobalExceptionHandler.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 push-service/src/main/java/com/xuqm/push/controller/GlobalExceptionHandler.java diff --git a/push-service/src/main/java/com/xuqm/push/controller/GlobalExceptionHandler.java b/push-service/src/main/java/com/xuqm/push/controller/GlobalExceptionHandler.java new file mode 100644 index 0000000..fd594d0 --- /dev/null +++ b/push-service/src/main/java/com/xuqm/push/controller/GlobalExceptionHandler.java @@ -0,0 +1,28 @@ +package com.xuqm.push.controller; + +import com.xuqm.common.exception.BusinessException; +import com.xuqm.common.model.ApiResponse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +@RestControllerAdvice +public class GlobalExceptionHandler { + + private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class); + + @ExceptionHandler(BusinessException.class) + public ResponseEntity> handleBusiness(BusinessException ex) { + return ResponseEntity.status(ex.getCode()) + .body(ApiResponse.error(ex.getCode(), ex.getMessage())); + } + + @ExceptionHandler(Exception.class) + public ResponseEntity> handleUnexpected(Exception ex) { + log.error("Unexpected error", ex); + return ResponseEntity.status(500) + .body(ApiResponse.error(500, ex.getClass().getSimpleName() + ": " + ex.getMessage())); + } +}