Spring MVC设置异常控制

spring处理异常的方式:

  • 特定的spring异常会自动应设成状态码
  • 可以在自定义的异常类上添加@ResponseStatus(),进行自定义的状态码的定义。参数为要映射的状态码
  • 可以通过自定义方法进行异常的处理@ExceptionHandler(),参数为要捕获的异常类

将异常映射为状态码

  • 通过自定义异常类,在异常类的类开头添加注解@ResponseStatus,当代码抛出自定义的异常类的错误时进行状态码的映射
  • 如下当程序抛出MyException时映射为500
//将异常映射为500
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public class MyException extends RuntimeException{
}

通过处理方法处理异常(只在一个类中)

  • 可以直接在业务控制器中添加异常处理的方法,但是这个异常处理的方法只对这个控制器起作用。(如下)
@Controller
public class ExceptionController {
    @RequestMapping("/ex")
    public String catchAnException(){
        if (1==1) {
            throw new MyException();
        }
        return "exception";
    }

    @ExceptionHandler(MyException.class)
    public String myHandler(){
        return "exception";
    }
}

也可以将所有的异常处理类定义在一个类中(控制器通知)

  • 控制器通知,在类上添加注解@ControllerAdvice进行标注,这个注解包含@Component。
  • 控制器通知可以应用到整个系统中。
//控制器通知
@ControllerAdvice
public class MyExceptionHandler {
//当程序中任意地方抛出MyException,该方法都会进行处理
    @ExceptionHandler(MyException.class)
    public String myHandler(){
        return "exception";
    }
}

转载于:https://my.oschina.net/helloXia/blog/1829798

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值