springboot-异常处理

Posted 张and强

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot-异常处理相关的知识,希望对你有一定的参考价值。

springboot-异常处理

springboot默认处理

默认情况下,Spring Boot 提供/error映射,以合理的方式处理所有错误,并在 servlet 容器中注册为“global”错误页面。对于机器客户端,它会生成一个 JSON 响应,其中包含错误,HTTP 状态和 exception 消息的详细信息。

使用@RestControllerAdvice注解和ExceptionHandler注解

可以使用上去的两个注解来处理全局异常

@RestControllerAdvice
public class GoalExceptionHandler {

	@ExceptionHandler(NullPointerException.class)
	public Map<String,Object> dealNullPoint(){
		Map<String,Object> map = new HashMap<>(12);
		map.put("stutas",1);
		map.put("msg","空指针异常处理");
		return map;
	}

	@ExceptionHandler(Exception.class)
	public ModelAndView dealException(Exception e){
		ModelAndView modelAndView = new ModelAndView();
		modelAndView.setViewName("/public/error/error.html");
		return modelAndView;
	}


通过实现ErrorViewResolver接口来处理错误视图页面

@Configuration
public class MyErrorViewResolver implements ErrorViewResolver {
	@Override
	public ModelAndView resolveErrorView(HttpServletRequest request, HttpStatus status, Map<String, Object> model) {
		if (status.value()==404){
			ModelAndView modelAndView = new ModelAndView();
			modelAndView.setViewName("/error/404.html");
			return modelAndView;
		}
		return null;
	}
}

以上是关于springboot-异常处理的主要内容,如果未能解决你的问题,请参考以下文章

springboot2.0处理任何异常返回通用数据格式

SpringBoot启动报错“Consider defining a bean of type ‘xxx.mapper.UserMapper‘ in your configuration.“(代码片段

Springboot集成Common模块中的的全局异常处理遇见的问题

SpringBoot学习13:springboot异常处理方式3(使用@ControllerAdvice+@ExceptionHandle注解)

SpringBoot项目如何做到统一异常处理

聊聊springboot项目全局异常处理那些事儿