该博客介绍了如何在Java Spring Boot应用中创建并处理自定义异常。Result类用于构建统一的返回结果,包含状态码、错误消息和数据字段。Constants类定义了常见的状态码,如200表示成功,500表示系统错误。ServiceException作为自定义异常类,包含了错误代码。GlobalExceptionHandler是全局异常处理器,捕获ServiceException并返回相应的错误响应。
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Result {
private String code;
private String msg;
private Object data;
public static Result success(){
return new Result(Constants.CODE_200,"",null);
}
public static Result success(Object data){
return new Result(Constants.CODE_200,"",data);
}
public static Result error(String code,String msg){
return new Result(code,msg,null);
}
public static Result error(){
return new Result(Constants.CODE_500,"系统错误",null);
}
}
code常量类:
public class Constants {
public static final String CODE_200 ="200" ; //成功
public static final String CODE_500 ="500" ; //系统错误
public static final String CODE_401 ="401" ; //权限不足
}
自定义异常
创建自定义异常类
import lombok.Getter;
@Getter
public class ServiceException extends RuntimeException{
private String code;
public ServiceException(String code,String msg){
super(msg);
this.code=code;
}
}
创建异常处理器类,来处理自定义异常
import com.xxy.springboot.common.Result;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(ServiceException.class)
@ResponseBody
public Result handle(ServiceException se){
return Result.error(se.getCode(),se.getMessage());
}
}