SpringCloud:自定义异常处理
1、引入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.73</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
<version>2.3.3.RELEASE</version>
</dependency>
fastjson 是 JSON 序列化依赖, spring-boot-starter-freemarker 是一个模板引擎,用于我们设置错误输出模板
2、增加配置
properties
# 出现错误时, 直接抛出异常(便于异常统一处理,否则捕获不到404)
spring.mvc.throw-exception-if-no-handler-found=true
# 不要为工程中的资源文件建立映射
spring.resources.add-mappings=false
yml
spring:
# 出现错误时, 直接抛出异常(便于异常统一处理,否则捕获不到404)
mvc:
throw-exception-if-no-handler-found: true
# 不要为工程中的资源文件建立映射
resources:
add-mappings: false
3.新建错误信息实体
/**
* 信息实体
* @author st
* @date 2021/2/23 15:47
*/
public class ExceptionEntity implements Serializable {
private static final long serialVersionUID = 1L;
private String message;
private int code;
private String error;
private String path;
@JSONField(format = "yyyy-MM-dd hh:mm:ss")
private Date timestamp = new Date();
public static long getSerialVersionUID() {
return serialVersionUID;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getError() {
return error;
}
public void setError(String error) {
this.error = error;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public Date getTimestamp() {
return timestamp;
}
public void setTimestamp(Date timestamp) {
this.timestamp = timestamp;
}
}
4、新建自定义异常
/**
* 自定义异常
* @author st
* @date 2021/2/23 16:02
*/
public class BasicException extends RuntimeException