一、@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 异常后更改响应状态码相关推荐

  1. HTTP的响应状态码

    HTTP的响应状态码由5段组成: 1xx 消息,一般是告诉客户端,请求已经收到了,正在处理,别急... 2xx 处理成功,一般表示:请求收悉.我明白你要的.请求已受理.已经处理完成等信息. 3xx 重 ...

  2. HTTP简介、请求方法与响应状态码

    点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! Https相关的文章,请看这一篇:TCP.IP协议族之数字签名与HTTPS详解 接下来想系统的回顾 ...

  3. TCP/IP协议族(一) HTTP简介、请求方法与响应状态码

    接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的.接下来的几篇博客都是关于TCP/IP协议族的,本篇博客就先简单 ...

  4. python爬虫常见报错_Python爬虫常见HTTP响应状态码详解

    在使用Python进行网页数据抓取时,经常会遇到无数据返还或错误等异常,这个时候可以通过status_code命令来查看获得http请求返回的状态码,以便查找原因并制定相应的解决方案.import r ...

  5. 02-HTTP的请求方法以及响应状态码

    1.   HTTP的请求方法以及响应状态码 1.1. 请求方法 http请求方法有GET.POST.PUT.HEAD.DELETE.OPTIONS.TRACE.CONNECT.当然上述方法是基于HTT ...

  6. fastapi 响应模型 / 响应状态码 / 表单参数

    文章目录 1. response_model 2. 添加输出模型 3. 响应模型编码参数 4. response_model_include 和 response_model_exclude 5. 代 ...

  7. http接口测试:了解协议、请求方法、响应状态码

    http接口测试:了解协议.请求方法.响应状态码 接口在各个系统间的重要性无需重申,主要体现在外部系统与系统之间以及内部各子系统之间的交互点.通过这些特定的交互点和一些特殊的规则标准(协议)来进行系统 ...

  8. Servlet+常用头信息+响应状态码+响应对象

    一.Servlet 1.概念 什么是Servlet? 1.Servlet 是 java EE 的规范之一.也就是接口.Servlet 接口定义了一套网络请求的规范2.Servlet 是 javaweb ...

  9. iOS开发之HTTP的请求头和响应头 以及常见的响应状态码

    *************请求头************** 请求头:包含了对客户端的环境描述.客户端请求信息等 GET /minion.png HTTP/1.1   //包含了请求方法.请求资源路径 ...

最新文章

  1. 2021年你不能错过的DevOps趋势
  2. 在IE6/7下表格td标签没有内容时不显示边框?
  3. 郑州计算机单招学校有哪些专业,郑州单招的学校有哪些专业
  4. x86服务器中网络性能分析与调优(高并发、大流量网卡调优)
  5. 一位中国婆婆的自述[转]
  6. Microsoft.CSharp.dll程序集的作用
  7. node包管理器npm常用命令
  8. c语言中格式化字符串系列函数包括,解析C语言中常用的格式化输入、输出函数...
  9. filebeat 解析日志 并发送到Elasticsearch
  10. Gradle简单使用
  11. 原创!PlusU盘病毒免疫工具,让你轻松远离伪装成文件夹的U盘病毒!
  12. Pr进阶:粗剪常用快捷键
  13. php ipa 版本定制,自建IOS企业包ipa包 下载服务
  14. Python代码爬取下载应用宝所有APP软件
  15. 路由器硬件基础知识--MTU
  16. python+selenium实战搭建PO模型
  17. 汇编:动态画出一棵七彩圣诞树
  18. 互联网必备技能1-写好PPT
  19. 第二课:创建三层神经网络解决非线性问题
  20. 大数定律具体是个什么概念?

热门文章

  1. Monkey测试—真机测试步骤
  2. ifconfig 发现RX dropped 数字比较大的理解
  3. php 友盟推送角标,桌面角标设置以及消息推送服务
  4. 天津python培训价格
  5. 清除浮动影响的几种方法
  6. 已知一个如图所示的训练数据集,其正例点是x1=(3,3),x1=(4,3),负例点是x3=(1,1),试求最大间隔分离超平面。
  7. Java_运动员和教练案例代码实现
  8. js前台与后台数据交互-前台调后台
  9. 统计学之正态分布检验
  10. 报错 SparkContext is null but app is still running!