目录
常用HTTP状态码分类和HttpStatus枚举的对应关系
- 1XX 信息状态码:接受的请求正在处理
- 2XX 成功状态码:请求正常处理完毕
- 200 -
HttpStatus.OK
(请求成功) - 204 -
HttpStatus.NO_CONTENT
(无内容) - 206 -
HttpStatus.PARTIAL_CONTENT
(部分内容)
- 200 -
- 3XX 重定向状态码:需要进行附加操作以完成请求
- 301 -
HttpStatus.MOVED_PERMANENTLY
(永久移动) - 302 -
HttpStatus.Found
(临时移动) - 303 -
HttpStatus.SEE_OTHER
(查看其他地址) - 304 -
HttpStatus.NOT_MODIFIED
(未修改) - 307 -
HttpStatus.TEMPORARY_REDIRECT
(临时重定向)
- 301 -
- 4XX 客户端错误状态码:服务器无法处理请求
- 400 -
HttpStatus.BAD_REQUEST
(错误请求) - 401 -
HttpStatus.UNAUTHORIZED
(未经授权) - 403 -
HttpStatus.FORBIDDEN
(拒绝请求) - 404 -
HttpStatus.NOT_FOUND
(无法找到)
- 400 -
- 5XX 服务端错误状态码:服务器处理请求出错
- 500 -
HttpStatus.INTERNAL_SERVER_ERROR
(内部服务器错误) - 503 -
HttpStatus.SERVICE_UNAVAILABLE
(服务不可用)
- 500 -
错误请求处理过程
定义ResourceBadRequestException类
注意要添加@ResponseStatus
注解,和相应的HttpStatus
@ResponseStatus(HttpStatus.BAD_REQUEST)
public class ResourceBadRequestException extends RuntimeException {
public ResourceNotFoundException(String message) {
super(message);
}
}
在监测到相应的问题时抛出对应的异常
@Controller
public class MyController {
@RequestMapping("/delEms")
public String delEms(String emsId){
if(StringUtils.isNotBlank(emsId)){
// 调用JPA删除,并获取返回值是否大于0
int delNum = jpa.deleteByEmsId(emsId);
if (selNum > 0){
// 正常返回处理相关的数据
}
}
throw new ResourceBadRequestException(EMS ID 未找到)
}
}