Szenario: Für die Ausnahmebehandlung besteht unser ursprünglicher Ansatz darin, Ausnahmen im Allgemeinen auf der äußersten Ebene zu erfassen, z. B. im Controller wird den Code erheblich verbessern und die Generierung von redundantem Code reduzieren.
@Controller public class HelloController { private static final Logger logger = LoggerFactory.getLogger(HelloController.class); @GetMapping(value = "/hello") @ResponseBody public Result hello() { try { //TODO 具体的逻辑省略…… } catch (Exception e) { logger.error("hello接口异常={}", e); return ResultUtil.success(-1, "system error", null); } return ResultUtil.success(0, "success", null); } }
Benutzerdefinierter einheitlicher Ausnahmehandler: die beiden kritischeren Kommentieren Sie @ControllerAdvice, @ExceptionHandler.
public class GlobalException extends RuntimeException { private Integer code; //因为我需要将异常信息也返回给接口中,所以添加code区分 public GlobalException(Integer code,String message) { super(message); //把自定义的message传递个异常父类 this.code = code; } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } }
Schreiben Sie eine Testklasse zum Testen
Das obige ist der detaillierte Inhalt vonSo implementieren Sie eine einheitliche Ausnahmebehandlung in SpringBoot. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!