在接手一些之前的项目的时候,发现项目中每个controller方法中都写了try catch这样的代码,看的我怪难受的。主要是我接手这个,那我写方法的时候难道也要跟之前一样在每个方法中也来try catch吗?
最开始想偷懒的时候,想着写一个AOP统一处理这样的。可是后来又想springboot这样全家桶一样的技术,难道底部没有集成这种东西吗?
看了些资料,还真是被我找到了。话不多说,直接上我的domo
//basePackages表明需要执行捕获异常的包名
@ControllerAdvice(basePackages = "com.example.profile.GlobleException" )
public class GlobalExceptionHandler {
@ResponseBody
@ExceptionHandler(RuntimeException.class)
public Map<String,Object> errorResult(){
Map<String,Object>map = new HashMap<>();
map.put("亲,不好意思,发生了小小的故事","404");
return map;
}
}
@RestController
public class Index {
@ResponseBody
@RequestMapping("/index")
public String index (){
//故意发生错误
Integer i =1/0;
return i.toString();
}
}
执行效果: