java培训课程之异常处理_ResponseStatusExceptionResolver

  • 在异常及异常父类中找到 @ResponseStatus 注解,然后使用这个注解的属性进行处理。
  • 定义一个 @ResponseStatus 注解修饰的异常类
  • 若在处理器方法中抛出了上述异常:若ExceptionHandlerExceptionResolver 不解析上述异常。由于触发的异常 UnauthorizedException 带有@ResponseStatus 注解。因此会被ResponseStatusExceptionResolver 解析到。最后响应UNAUTHORIZED 代码给客户端。HttpStatus.UNAUTHORIZED 代表响应码401,无权限。 关于其他的响应码请参考 HttpStatus 枚举类型源码。

org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver

Implementation of the HandlerExceptionResolver interface that uses the @ResponseStatus annotation to map exceptions to HTTP status codes.

This exception resolver is enabled by default in the

?org.springframework.web.servlet.DispatcherServlet.

? ?1 实验代码

  • 页面链接

<a href=”testResponseStatusExceptionResolver?i=10″>testResponseStatusExceptionResolver</a>

  • 自定义异常类

package com.atguigu.springmvc.exception;

 

import org.springframework.http.HttpStatus;

import org.springframework.web.bind.annotation.ResponseStatus;

 

/**

?* 自定义异常类

HttpStatus.FORBIDDEN 不允许的,禁用的

?*/

@ResponseStatus(value=HttpStatus.FORBIDDEN,reason=”用户名称和密码不匹配“)

public class UsernameNotMatchPasswordException extends RuntimeException{}

  • 控制器方法

@RequestMapping(value=”/testResponseStatusExceptionResolver”)

public String testResponseStatusExceptionResolver(@RequestParam(“i”) int i){

if(i==13){

throw new UsernameNotMatchPasswordException();

}

System.out.println(“testResponseStatusExceptionResolver…”);

return “success”;

}

  • 出现的错误消息
  • 没使用注解?#20445;?strong>@ResponseStatus(value=HttpStatus.FORBIDDEN,reason=”用户名称和密码不匹配“)

Java培训

  • 使用注解?#20445;?strong>@ResponseStatus(value=HttpStatus.FORBIDDEN,reason=”用户名称和密码不匹配“)

java培训

  • 测试在方法上使用注解

@ResponseStatus(value=HttpStatus.NOT_FOUND,reason=”测试方法上设置响应状态码“)

@RequestMapping(value=”/testResponseStatusExceptionResolver”)

public String testResponseStatusExceptionResolver(@RequestParam(“i”) int i){

if(i==13){

throw new UsernameNotMatchPasswordException();

}

System.out.println(“testResponseStatusExceptionResolver…”);

return “success”;

}

java培训

  • ResponseStatus

package org.springframework.web.bind.annotation;

 

import java.lang.annotation.Documented;

import java.lang.annotation.ElementType;

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;

import java.lang.annotation.Target;

 

import org.springframework.http.HttpStatus;

 

/**

?* Marks a method or exception class with the status code and reason that should be returned. The status code is applied

?* to the HTTP response when the handler method is invoked, or whenever said exception is thrown.

?*

?* @author Arjen Poutsma

?* @see org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver

?* @since 3.0

?*/

@Target({ElementType.TYPE, ElementType.METHOD})

@Retention(RetentionPolicy.RUNTIME)

@Documented

public @interface ResponseStatus {

 

HttpStatus value();

 

String reason() default “”;

 

}

  • HttpStatus

上一篇:
下一篇:
关于我们
名师团队
新闻动态
合作企业
资源下载
视频下载
资料下载
工具下载
加入我们
招?#29238;?#20301;
岗位介绍
招贤纳师
联系我们
电话:010-56253825
邮箱:[email protected]
地址:北京市昌平区宏福科技园综?#19979;?层(北京校区)

 深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦6层(上海校区)

轩辕传奇通天塔
时时彩软件app 3分赛车计划app 20选5开复式 黑龙江时时彩链接 江西时时开奖计划 澳洲幸运8开奖数据 重庆时时5星走势图星 河内五分彩平台app 云南十一选五开奖走势图 十一选五步步倒组合