自定义我的异常
```java
public class MyException extends RuntimeException{
//继承运行时异常
private final int code;
private final String description;
public MyException(String message, int code, String description) {
super(message);
this.code = code;
this.description = description;
}
public MyException(ErrorCode errorCode) {
super(errorCode.getMessage());
this.code = errorCode.getCode();
this.description = errorCode.getDescription();
}
public MyException(ErrorCode errorCode, String description) {
super(errorCode.getMessage());
this.code = errorCode.getCode();
this.description = description;
}
public int getCode() {
return code;
}
public String getDescription() {
return description;
}
全局异常 通过ControllerAdvice注解声明
@Slf4j
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(MyException.class)
public Result businessException(MyException e) {
log.error("MyException:"+ e.getMessage(), e);
return new Result(e.getCode(), e.getMessage(),e.getDescription());
}
//捕获所有运行时异常
@ExceptionHandler(RuntimeException.class)
public Result runtimeExceptionException(RuntimeException e) {
log.error("RuntimeException", e);
return new Result(500,null, e.getMessage());
}
}
在业务代码中抛出异常
if (id==1)
{
throw new MyException(ErrorCode.builder()
.code(200)
.message("异常出")
.description("o了")
.build());
}