springboot-全局捕获异常

在接手一些之前的项目的时候,发现项目中每个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();
    }
}

执行效果:

springboot-全局捕获异常