讲解:服务端异常讲解和SpringBoot配置全局异常实战
在我们平时书写代码时,可能会有意想不到的代码错误,这些异常表现并不友好,比如"自杀"代码报的异常,我们有时候希望在程序出错之后,能够捕获他,并且跳转到一个错误界面,那么接下来我们进入正题。
1、异常注解介绍
@ControllerAdvice //标记给类是一个异常处理类如果是返回json数据 则用 RestControllerAdvice,就可以不加 @ResponseBody
//捕获全局异常,处理所有不可知的异常
@ExceptionHandler(value=Exception.class)
public Object handleException(Exception e,HttpServletRequest request){}
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.servlet.ModelAndView;
/**
* 用于处理异常的类
* @author dell
*
*/
@RestControllerAdvice
public class CustonExtHandle {
@ExceptionHandler(value=Exception.class)
public Object handleExce(Exception e,HttpServletRequest request){
Map<String, Object> map = new HashMap<String, Object>();
map.put("msg",e.getMessage());
map.put("url",request.getRequestURI());
return map;
}
}
在次出现异常以后
2、自定义异常类
自定义的异常类需要继承运行时最高异常类RuntimeException
其他的步骤和前面的步骤相同,我在这就只截图给大家了
在跳转到错误界面之间你需要 引入thymeleaf依赖,thymeleaf模板具体使用可以查看我的另外博客https://editor.csdn.net/md/?articleId=104596949
1、返回自定义异常界面,需要引入thymeleaf依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
这样配置以后,在出现程序错误就不会报那种异常了,会跳转到你所指定的页面。