1、不过跟异常处理相关的只有注解@ExceptionHandler,从字面上看,就是 异常处理器 的意思,其实际作用也是:若在某个Controller类定义一个异常处理方法,并在方法上添加该注解,那么当出现指定的异常时,会执行该处理异常的方法,其可以使用springmvc提供的数据绑定,比如注入HttpServletRequest等,还可以接受一个当前抛出的Throwable对象。但是,这样一来,就必须在每一个Controller类都定义一套这样的异常处理方法

2、那有没有一种方案,既不需要跟Controller耦合,也可以将定义的 异常处理器 应用到所有控制器呢?所以注解@ControllerAdvice出现了,简单的说,该注解可以把异常处理器应用到所有控制器,而不是单个控制器

springmvc是怎么处理controller返回的异常的,是用JSON打印吗?为什么浏览器只返回了异常枚举类中的信息???

目录
什么是统一异常处理
目标
统一异常处理实战
用 Assert(断言) 替换 throw exception
善解人意的Enum
定义统一异常处理器类
异常处理器说明
handleServletException
handleBindException
handleValidException
handleBusinessException、handleBaseException
handleException
异于常人的404
统一返回结果
验证统一异常处理
主要代码
开始验证
捕获自定义异常
捕获未知异常
小结
扩展
总结