Spring Boot 默认对于用户错误异常的处理方式
Spring boot的错误处理是基于状态码来处理的。
BasicErrorController 默认的错误请求处理器
对于用户使用浏览器访问的应用 还是用户使用http请求的方式访问的应用,SpringBoot对于错误异常处理是分为两种处理机制的:
- 用户使用的是浏览器访问的应用,那么SpringBoot会调用BasicErrorController的errorHtml方法来处理错误方法。方法的注解中produce = text/html ,过滤请求头中的accept中的信息
- 用户使用http请求的应用,请求头的accept为*/*
当请求进到了方法中,在方法中抛出得异常:
- 开发者在Resource下再建立一个resource文件夹,文件夹中放置一个状态码命名的html文件,当出现对应的错误状态码的时候springboot 会调用相应的html文件返回给前台。
- 如果还是还是需要比较详细的信息,比如需要将产生错误的消息的,方法类型,方法参数等内容,则需要在抛出异常的时候带着更多的信息。
- 定义一个自定义的异常类型,自定义的异常类型中,带着需要的异常信息。
- 定义一个统一的异常处理类。这个类要使用@ComponentAdvice注解来标记这个类是用来统一处理其它控制器产生的异常的。
- 在这个类中定义处理具体的异常的方法。方法使用@ExceptionHandle注解捕获需要处理的异常,这个注解需要异常类型作为参数