SpringBoot 异常后更改响应状态码
一、@RestControllerAdvice和 @ExceptionHandler拦截异常
package com.lxk.socket.collector.common;import com.lxk.base.bean.CommonResult;
import com.lxk.base.exception.BusinessRuntimeException;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;@RestControllerAdvice
public class GlobalExceptionResolver {private static final Logger LOG = LoggerFactory.getLogger(GlobalExceptionResolver.class);/*** 处理所有不可知异常*/@ExceptionHandler(Exception.class)public CommonResult handleException(Exception e) {LOG.error(e.getMessage(), e);return CommonResult.error(HttpStatus.INTERNAL_SERVER_ERROR.value(), "操作失败!,系统异常," + ExceptionUtils.getRootCauseMessage(e));}/*** 处理所有业务异常*/@ExceptionHandler(BusinessRuntimeException.class)public ResponseEntity handleOpdRuntimeException(BusinessRuntimeException e) {// 不打印异常堆栈信息LOG.error(e.getMsg());if("409".equals(e.getCode())){return ResponseEntity.status(HttpStatus.CONFLICT.value()).body("不能重复建立连接!");}else{throw e;}}
}
二、ResponseEntity更改HTTP Status Code
/*** 处理所有业务异常*/@ExceptionHandler(BusinessRuntimeException.class)public ResponseEntity handleOpdRuntimeException(BusinessRuntimeException e) {// 不打印异常堆栈信息LOG.error(e.getMsg());if("409".equals(e.getCode())){return ResponseEntity.status(HttpStatus.CONFLICT.value()).body("不能重复建立连接!");}else{throw e;}}
HTTP Status Code
分类 | 分类描述 |
---|---|
1** | 信息,服务器收到请求,需要请求者继续执行操作 |
2** | 成功,操作被成功接收并处理 |
3** | 重定向,需要进一步的操作以完成请求 |
4** | 客户端错误,请求包含语法错误或无法完成请求 |
5** | 服务器错误,服务器在处理请求的过程中发生了错误 |
常用的几种状态码
状态码 | 英文名 | 中文描述 |
---|---|---|
200 | OK | 请求成功。一般用于GET与POST请求 |
201 | Created | 已创建。成功请求并创建了新的资源 |
202 | Accepted | 已接受。已经接受请求,但未处理完成 |
400 | Bad Request | 客户端错误,请求包含语法错误或无法完成请求 |
401 | Unauthorized | 请求要求用户的身份认证 |
403 | Forbidden | 服务器理解请求客户端的请求,但是拒绝执行此请求 |
404 | Not Found | 服务器无法根据客户端的请求找到资源(网页) |
500 | Internal Server Error | 服务器内部错误,无法完成请求 |
501 | Not Implemented | 服务器不支持请求的功能,无法完成请求 |
503 | Service Unavailable | 由于超载或系统维护,服务器暂时的无法处理客户端的请求 |
SpringBoot 异常后更改响应状态码相关推荐
- HTTP的响应状态码
HTTP的响应状态码由5段组成: 1xx 消息,一般是告诉客户端,请求已经收到了,正在处理,别急... 2xx 处理成功,一般表示:请求收悉.我明白你要的.请求已受理.已经处理完成等信息. 3xx 重 ...
- HTTP简介、请求方法与响应状态码
点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! Https相关的文章,请看这一篇:TCP.IP协议族之数字签名与HTTPS详解 接下来想系统的回顾 ...
- TCP/IP协议族(一) HTTP简介、请求方法与响应状态码
接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的.接下来的几篇博客都是关于TCP/IP协议族的,本篇博客就先简单 ...
- python爬虫常见报错_Python爬虫常见HTTP响应状态码详解
在使用Python进行网页数据抓取时,经常会遇到无数据返还或错误等异常,这个时候可以通过status_code命令来查看获得http请求返回的状态码,以便查找原因并制定相应的解决方案.import r ...
- 02-HTTP的请求方法以及响应状态码
1. HTTP的请求方法以及响应状态码 1.1. 请求方法 http请求方法有GET.POST.PUT.HEAD.DELETE.OPTIONS.TRACE.CONNECT.当然上述方法是基于HTT ...
- fastapi 响应模型 / 响应状态码 / 表单参数
文章目录 1. response_model 2. 添加输出模型 3. 响应模型编码参数 4. response_model_include 和 response_model_exclude 5. 代 ...
- http接口测试:了解协议、请求方法、响应状态码
http接口测试:了解协议.请求方法.响应状态码 接口在各个系统间的重要性无需重申,主要体现在外部系统与系统之间以及内部各子系统之间的交互点.通过这些特定的交互点和一些特殊的规则标准(协议)来进行系统 ...
- Servlet+常用头信息+响应状态码+响应对象
一.Servlet 1.概念 什么是Servlet? 1.Servlet 是 java EE 的规范之一.也就是接口.Servlet 接口定义了一套网络请求的规范2.Servlet 是 javaweb ...
- iOS开发之HTTP的请求头和响应头 以及常见的响应状态码
*************请求头************** 请求头:包含了对客户端的环境描述.客户端请求信息等 GET /minion.png HTTP/1.1 //包含了请求方法.请求资源路径 ...
最新文章
- 2021年你不能错过的DevOps趋势
- 在IE6/7下表格td标签没有内容时不显示边框?
- 郑州计算机单招学校有哪些专业,郑州单招的学校有哪些专业
- x86服务器中网络性能分析与调优(高并发、大流量网卡调优)
- 一位中国婆婆的自述[转]
- Microsoft.CSharp.dll程序集的作用
- node包管理器npm常用命令
- c语言中格式化字符串系列函数包括,解析C语言中常用的格式化输入、输出函数...
- filebeat 解析日志 并发送到Elasticsearch
- Gradle简单使用
- 原创!PlusU盘病毒免疫工具,让你轻松远离伪装成文件夹的U盘病毒!
- Pr进阶:粗剪常用快捷键
- php ipa 版本定制,自建IOS企业包ipa包 下载服务
- Python代码爬取下载应用宝所有APP软件
- 路由器硬件基础知识--MTU
- python+selenium实战搭建PO模型
- 汇编:动态画出一棵七彩圣诞树
- 互联网必备技能1-写好PPT
- 第二课:创建三层神经网络解决非线性问题
- 大数定律具体是个什么概念?
热门文章
- Monkey测试—真机测试步骤
- ifconfig 发现RX dropped 数字比较大的理解
- php 友盟推送角标,桌面角标设置以及消息推送服务
- 天津python培训价格
- 清除浮动影响的几种方法
- 已知一个如图所示的训练数据集,其正例点是x1=(3,3),x1=(4,3),负例点是x3=(1,1),试求最大间隔分离超平面。
- Java_运动员和教练案例代码实现
- js前台与后台数据交互-前台调后台
- 统计学之正态分布检验
- 报错 SparkContext is null but app is still running!