SpringBoot注解@ControllAdvice知多少( 二 )


SpringBoot注解@ControllAdvice知多少文章插图
package org.as.asjee.core.security.web;import java.sql.SQLException;import javax.annotation.Resource;import org.as.asjee.core.exception.BusinessException;import org.as.asjee.core.security.model.User;import org.as.asjee.core.security.service.UserService;import org.as.asjee.core.service.ServiceFacade;import org.as.asjee.core.web.AbstractController;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controller@RequestMapping("/security/user")public class UserControllerextends AbstractController{@Resourceprivate UserService userService;@Resourceprivate ServiceFacade serviceFacade;@RequestMapping("login")public String login() {return "login";}@RequestMapping("login2")public String login2() throws Exception {throw new SQLException("出错鸟 。。。。。。。。。 ");}@RequestMapping("login3")public String login3() throws Exception {throw new BusinessException("业务执行异常");}//此方法抛出的异常不是由GlobalExceptionHandler处理//而是在catch块处理@RequestMapping("login4")public String login4() {try {throw new BusinessException("业务执行异常");} catch (BusinessException e) {e.printStackTrace();}return "login";}}简要说明在Controller中抛出的异常 , 当没有被catch处理时 , GlobalExceptionHandler中定义的处理方法可以起作用 , 在方法写明注解@ExceptionHandler , 并注明其异常类即可 。 此种方法不仅可以作用于Controller , 同样的在DAO层、service层也可 , 都可以由GlobalExceptionHandler进行处理 。 此种写法减少代码的入侵 , 值得推荐 。异常的统一处理只是注解ControllerAdvice用处之一 , 有兴趣了解更多的 , 请到spring官网查阅 。
版权声明:本文为博主原创文章 , 遵循 CC 4.0 BY-SA 版权协议 , 转载请附上原文出处链接和本声明 。
本文链接: