文档章节

Spring Boot基础教程——web应用开发-错误处理

哎小艾
 哎小艾
发布于 2017/06/04 11:21
字数 323
阅读 21
收藏 0

一、错误的处理(以freemarker模板引擎为例
方法一:Spring Boot 将所有的错误默认映射到/error, 实现ErrorController,重写getErrorPath()方法

@Controller
@RequestMapping(value = "error")
public class BaseErrorController implements ErrorController {
private static final Logger logger = LoggerFactory.getLogger(BaseErrorController.class);

    @Override
    public String getErrorPath() {
        logger.info("出错啦!进入自定义错误控制器");
        return "error/error";
    }

    @RequestMapping
    public String error() {
        return getErrorPath();
    }

}

 

方法二:添加自定义的错误页面
2.1 html静态页面:在resources/public/error/ 下定义(请求的路径不存在)
如添加404页面: resources/public/error/404.html页面,中文注意页面编码
2.2 模板引擎页面:在templates/error/下定义(运行时异常)
如添加5xx页面: templates/error/5xx.ftl
注:templates/error/ 这个的优先级比较 resources/public/error/高

 

方法三:使用注解@ControllerAdvice(对特定异常处理)

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.servlet.ModelAndView;

/**
 * 异常处理类
 * 
 * @author hugovon
 * @version 1.0
 */
@ControllerAdvice
public class ErrorExceptionHandler {

	private static final Logger logger = LoggerFactory.getLogger(ErrorExceptionHandler.class);

	/**
	 * 统一异常处理
	 * 
	 * @param exception
	 *            exception
	 * @return
	 */
	@ExceptionHandler({ RuntimeException.class })
	@ResponseStatus(HttpStatus.OK)
	public ModelAndView processException(RuntimeException exception) {
		logger.info("自定义异常处理-RuntimeException");
		ModelAndView m = new ModelAndView();
		m.addObject("roncooException", exception.getMessage());
		m.setViewName("error/500");
		return m;
	}

	/**
	 * 统一异常处理
	 * 
	 * @param exception
	 *            exception
	 * @return
	 */
	@ExceptionHandler({ Exception.class })
	@ResponseStatus(HttpStatus.OK)
	public ModelAndView processException(Exception exception) {
		logger.info("自定义异常处理-Exception");
		ModelAndView m = new ModelAndView();
		m.addObject("roncooException", exception.getMessage());
		m.setViewName("error/500");
		return m;
	}

}

 

本文转载自:http://www.roncoo.com/

共有 人打赏支持
哎小艾
粉丝 13
博文 322
码字总数 163007
作品 0
深圳
程序员
私信 提问
转Spring Boot 教程系列学习

Spring Boot基础教程1-Spring Tool Suite工具的安装 Spring Boot基础教程2-RESTfull API简单项目的快速搭建 Spring Boot基础教程3-配置文件详解:Properties和YAML Spring Boot基础教程4-配置...

小花卷juan
2017/06/14
297
0
spring boot与spring mvc的区别是什么?

spring boot与spring mvc的区别是什么? 转载:https://blog.csdn.net/u014590757/article/details/79602309 spring boot只是一个配置工具,整合工具,辅助工具. springmvc是框架,项目中实际运...

Elsa晓冰
09/29
0
0
Spring Boot基础教程 ( 一 ) :基础项目构建,引入web模块,完成一个简单的RESTful API

原文出处:didispace 简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试...

didispace
09/27
0
0
Spring Boot入门资料整理

Spring Boot 初识 SpringBoot前世今生 本文主要讲述spring boot的由来,即其它诞生的背景,初衷,现状,及对未来的展望。 Spring Boot参考指南中文版--Chapter1.Spring Boot中文文档 本节提供...

小致dad
2017/11/07
0
0
Spring Boot 2.0干货系列:(一)Spring Boot1.5X升级到2.0指南

前言 Spring Boot已经发布2.0有4个月多,多了很多新特性,一些坑也慢慢被填上,最近有空,就把本博客中Spring Boot干货系列对应的源码从1.5X升级到Spring Boot 2.0,顺便整理下升级的时候遇到...

嘟爷MD
07/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

理解JavaScript普通函数以及箭头函数里使用的this

this 普通函数的this 普通函数的this是由动态作用域决定,它总指向于它的直接调用者。具体可以分为以下四项: this总是指向它的直接调用者, 例如 obj.func() ,那么func()里的this指的是obj...

Jack088
12分钟前
0
0
RPC框架几行代码就够了

摘自梁飞的博客 - RPC框架几行代码就够了 简易RPC框架实现: /* * Copyright 2011 Alibaba.com All right reserved. This software is the * confidential and proprietary information ......

千面人
20分钟前
16
0
10 道关于 Java 泛型的面试题

1.Java中的泛型是什么 ? 使用泛型的好处是什么? 这是在各种Java泛型面试中,一开场你就会被问到的问题中的一个,主要集中在初级和中级面试中。那些拥有Java1.4或更早版本的开发背景的人都知道...

蚂蚁-Declan
30分钟前
1
0
配置Git

1.首先在本地创建ssh key; $ ssh-keygen -t rsa -C "your_email@youremail.com" 后面的your_email@youremail.com改为你在github上注册的邮箱,之后会要求确认路径和输入密码,我们这使用默认...

15834278076
31分钟前
1
0
day126-20181024-英语流利阅读-待学习

看脸时代,男人也要化妆 Lala 2018-10-24 1.今日导读 十年前,或许绝大多数男生都认为男性化妆是一件很滑稽的事。但现在,从电视荧幕上化妆的小鲜肉,到社交媒体涌现的大批男性美妆博主、网络...

飞鱼说编程
32分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部