diff --git a/src/main/java/xyz/playedu/api/controller/ExceptionController.java b/src/main/java/xyz/playedu/api/controller/ExceptionController.java new file mode 100644 index 0000000..f89023d --- /dev/null +++ b/src/main/java/xyz/playedu/api/controller/ExceptionController.java @@ -0,0 +1,22 @@ +package xyz.playedu.api.controller; + +import org.springframework.web.HttpRequestHandler; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; +import xyz.playedu.api.exception.ServiceException; +import xyz.playedu.api.types.JsonResponse; + +@RestControllerAdvice +public class ExceptionController { + + @ExceptionHandler(Exception.class) + public JsonResponse exceptionHandler(Exception e) { + return JsonResponse.error("系统错误", 500); + } + + @ExceptionHandler(ServiceException.class) + public JsonResponse serviceExceptionHandler(ServiceException e) { + return JsonResponse.error(e.getMessage(), 1); + } + +} diff --git a/src/main/java/xyz/playedu/api/controller/admin/AdminUserController.java b/src/main/java/xyz/playedu/api/controller/admin/AdminUserController.java index da9c04b..d0a7964 100644 --- a/src/main/java/xyz/playedu/api/controller/admin/AdminUserController.java +++ b/src/main/java/xyz/playedu/api/controller/admin/AdminUserController.java @@ -5,9 +5,10 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import xyz.playedu.api.domain.AdminUser; +import xyz.playedu.api.exception.ServiceException; import xyz.playedu.api.service.impl.AdminUserServiceImpl; import xyz.playedu.api.types.PaginationResult; -import xyz.playedu.api.types.ResponseBody; +import xyz.playedu.api.types.JsonResponse; @RestController public class AdminUserController { @@ -16,9 +17,14 @@ public class AdminUserController { private AdminUserServiceImpl adminUserService; @GetMapping("/admin/user/index") - public ResponseBody List(@RequestParam("page") Integer page, @RequestParam("size") Integer size) { + public JsonResponse List(@RequestParam("page") Integer page, @RequestParam("size") Integer size) { PaginationResult result = adminUserService.paginate(page, size, null); - return ResponseBody.data(result); + return JsonResponse.data(result); + } + + @GetMapping("/admmin/user/test") + public void TestException() throws ServiceException { + throw new RuntimeException("我是错误"); } } diff --git a/src/main/java/xyz/playedu/api/exception/ServiceException.java b/src/main/java/xyz/playedu/api/exception/ServiceException.java new file mode 100644 index 0000000..4e4beb2 --- /dev/null +++ b/src/main/java/xyz/playedu/api/exception/ServiceException.java @@ -0,0 +1,22 @@ +package xyz.playedu.api.exception; + +public class ServiceException extends Exception { + public ServiceException() { + } + + public ServiceException(String message) { + super(message); + } + + public ServiceException(String message, Throwable cause) { + super(message, cause); + } + + public ServiceException(Throwable cause) { + super(cause); + } + + public ServiceException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} diff --git a/src/main/java/xyz/playedu/api/types/ResponseBody.java b/src/main/java/xyz/playedu/api/types/JsonResponse.java similarity index 58% rename from src/main/java/xyz/playedu/api/types/ResponseBody.java rename to src/main/java/xyz/playedu/api/types/JsonResponse.java index 6ef9452..8b81831 100644 --- a/src/main/java/xyz/playedu/api/types/ResponseBody.java +++ b/src/main/java/xyz/playedu/api/types/JsonResponse.java @@ -1,6 +1,6 @@ package xyz.playedu.api.types; -public class ResponseBody { +public class JsonResponse { private Integer code; private String msg; @@ -30,21 +30,21 @@ public class ResponseBody { this.data = data; } - public ResponseBody(Integer code, String msg, T data) { + public JsonResponse(Integer code, String msg, T data) { this.code = code; this.msg = msg; this.data = data; } - public static ResponseBody success(String msg) { - return new ResponseBody<>(0, msg, null); + public static JsonResponse success(String msg) { + return new JsonResponse<>(0, msg, null); } - public static ResponseBody data(Object data) { - return new ResponseBody<>(0, "", data); + public static JsonResponse data(Object data) { + return new JsonResponse<>(0, "", data); } - public static ResponseBody error(String msg, Integer code) { - return new ResponseBody<>(code, msg, null); + public static JsonResponse error(String msg, Integer code) { + return new JsonResponse<>(code, msg, null); } }