Flask接口签名sign原理与实例代码浅析
268
2023-01-07
SpringBoot 统一异常处理详解
代码结构
配置pom文件
xmlns:xsi="http://w3.org/2001/Xhttp://MLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
xmlns:xsi="http://w3.org/2001/Xhttp://MLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
启动类
package com.zz;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class,args);
}
}
自定义异常类
package com.zz.exception;
public class UserNotExistException extends RuntimeException{
private static final long serialVersionUID = -1574716826948451793L;
private String id;
public UserNotExistException(String id){
super("user not exist");
this.id = id;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
统一处理类
1. 在class上面加 @ControllerAdvice 表示全局异常处理类
2. 在方法的上面加@ExceptionHandler(UserNotExistException.class), 表示catch 到这个异常类型,并且在方法中处理, 不同的异常,可以通过不同的方法处理,每个方法上面都是通过这个注解括号里面的异常类来设置需要处理的异常类型。
package com.zz.handler;
import com.zz.exception.UserNotExistException;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import java.util.HashMap;
import java.util.Map;
@ControllerAdvice
public class ControllerExceptionHandler {
//返回json的错误信息
@ExceptionHandler(UserNotExistException.class)
@ResponseBody
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public Map
Map
map.put("id", e.getId());
map.put("message", e.getMessage());
return map;
}
//错误以后,跳转到自己定义的错误页面
@ExceptionHandler(ArithmeticException.class)
public String handle1(ArithmeticException e) {
System.out.println("handle1 500*到了**************");
return "/500.html";
}
}
controller类
package com.zz.controller;
import com.zz.exception.UserNotExistException;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("user")
public class UserController {
@GetMapping("/{id:\\d+}")
public void get(@PathVariable StringpjwqIM id) {
throw new UserNotExistException(id);
}
@GetMapping("error2")
public void get2() {
int a=1/0;
}
}
#运行结果
代码地址 github: 添加链接描述
以上所述是给大家介绍的SpringBoot统一异常处理详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~