美文网首页
Spring异常处理

Spring异常处理

作者: 刘军颖 | 来源:发表于2019-05-25 16:10 被阅读0次

Spring异常处理

无规则不成方圆,很多人知道这句话,但是做到的很少,因为随性,开发写BUG实际中,经常有这样那样的错误,怎么把错误统一起来,怎么收集一个错误,这是最关键的,这里抛开日志的记录,那些是单独话题,这里我说如何优雅的异常处理。优雅是相对而言,我们这里要做的就是不那么喽,就是不要控制器中出现大片的try..cach..这样的语句,有的甚至说不控制不就可以了吗?不控制更危险,因为不控制随意显示,有可能导致直接解散!

异常处理必备知识:

@ControllerAdvice

这个其实看源码就知道,他其实是@Compoent他在运行的时候其实就会是一个Bean

@ExceptionHandler

通过这个注解的value属性,我们能指定我们要拦截的异常,这里指定根方法,进行所有异常的拦截,当然也可以单独拦截某一种异常,后边我会讲到

优雅处理错误步骤

①做一个美观的错误页面

②添加一个ControllerAdvice控制器,用来拦截所有异常

③人为去制造一个错误

做一个美观的错误页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>错误显示DEMO</title>
</head>
<body>
    ${erroMsg}
</body>
</html>

定义ControllerAdvice控制器

@ControllerAdvice
public class ExceptionDemo {
    @ExceptionHandler(value = Exception.class)
    public ModelAndView exception(Exception exception, WebRequest request) {
        ModelAndView modelAndView = new ModelAndView("error");
        modelAndView.addObject("erroMsg", exception.getMessage());
        return modelAndView;
    }
}

造一个错误来测试

@Controller
public class DemoController {
    
    @RequestMapping("/advice")
    public String demo() throws IllegalAccessException {
        throw new IllegalAccessException("sulwan");
    }
}

测试效果

http://localhost:8080/advice

预览这个地址,应该就看见了我们自定义错误消息显示到页面去了!

相关文章

  • spring boot异常处理

    spring boot异常处理 在spring mvc异常处理一文中,我介绍了在spring mvc中如何配置异常...

  • Spring 之异常处理

    spring的异常处理 spring的异常处理,有两种方式 1、实现HandlerExceptionResolve...

  • SpringMVC(十三)异常处理

    一、异常处理 Spring MVC 通过 HandlerExceptionResolver 处理程序 的异常,包括...

  • SpringMVC异常处理

    Spring MVC处理异常有3种方式: (1)使用Spring MVC提供的简单异常处理器SimpleMappi...

  • SpringMVC统一异常处理

    Spring MVC处理异常有3种方式: (1)使用Spring MVC提供的简单异常处理器SimpleMappi...

  • springboot之统一异常处理

    spring统一异常处理 使用spring的统一异常处理,我们就不再需要在业务代码中就行显式的捕获异常处理,在da...

  • Spring中处理Filter中的异常

    通常的Spring全局异常处理并不能处理Filter中的异常。 How to manage exceptions ...

  • spring 处理异常

    spring提供了3种方式将异常转化为响应 特定spring异常将会自动映射为指定的http状态码 异常上可以添加...

  • spring异常处理

    中文乱码解决方案 spring提供了一个CharacterEncodingFilter过滤器,可用于解决乱码问题,...

  • Spring异常处理

    1、配置简单异常处理器(此方法用于简单处理异常,即只能做跳转) 其中Key对应需要处理的异常种类,value对应需...

网友评论

      本文标题:Spring异常处理

      本文链接:https://www.haomeiwen.com/subject/cdkzzqtx.html