当前位置: 首页 > news >正文

股票配资网站建设新郑郑州网站建设

股票配资网站建设,新郑郑州网站建设,软件二次开发怎么弄,苏州外贸网站建站Springboot全局异常处理 一、不使用全局异常处理器二、全局异常处理器1.自定义常量#xff08;返回状态码#xff09;2.手动抛出异常3.编写全局异常处理器4.测试结果 三、全局异常处理方式二1.定义状态码常量2. 定义基础接口#xff08;面向接口编程#xff09;3.定义枚举类… Springboot全局异常处理 一、不使用全局异常处理器二、全局异常处理器1.自定义常量返回状态码2.手动抛出异常3.编写全局异常处理器4.测试结果 三、全局异常处理方式二1.定义状态码常量2. 定义基础接口面向接口编程3.定义枚举类4.自定义数据传输对象5.定义全局异常处理器6.测试17.测试2 四、值得参考的博客 为什么使用全局异常 在开发过程中不管是 Dao、Servie、Controller层都有可能发生异常对于异常处理通常是 trycatch 或者直接 throw这会让 trycatch 的代码在代码中任意出现系统的代码耦合度高代码不美观统一异常处理可以美化代码。 如何使用全局异常 在后端处理请求过程中发生了异常DispatcherServlet 将异常处理委托给异常处理器处理异常的类。实现 HandlerExceptionResolver 接口的都是异常处理类。项目的异常一般集中处理定义全局异常处理器。再结合框架提供的注解诸如ExceptionHandlerControllerAdvice 或 RestControllerAdvice 一起完成异常的处理。注意 一定要和Controller中的注解Controller 和 RestController保持一致性。ControllerAdvice 与RestControllerAdvice 区别在于RestControllerAdvice 加了RepsonseBody。 一、不使用全局异常处理器 ① 编写控制器相关的代码模拟出现了空指针异常。NullPointerException RestController public class Controller {GetMapping(/divide)public String divide(){String str null;str.toString();return success;} }② 发送请求返回结果查看。 二、全局异常处理器 SpringBoot中ControllerAdvice 或 RestControllerAdvice 即可开启全局异常处理使用该注解表示开启了全局异常的捕获我们只需在自定义一个方法使用ExceptionHandler注解然后定义捕获异常的类型即可对这些捕获的异常进行统一的处理。 1.自定义常量返回状态码 /*** 返回状态码的常量**/ public class StatusCodeConstant {public static final Integer ERROR 500; //服务器非法错误 }2.手动抛出异常 RestController public class Controller {GetMapping(/divide)public String divide(){String str null;str.toString();return success;} }3.编写全局异常处理器 /*** 处理空指针的异常*/ExceptionHandler(NullPointerException.class)ResponseBodypublic String exceptionHandler(NullPointerException e){return h1服务器出现错误请联系管理员 e.getMessage() /h1;}4.测试结果 建议在参数签名中尽可能具体异常类以减少异常类型和原因异常之间不匹配的问题考虑创建多个ExceptionHandler 方法的每个方法通过其签名匹配单个特定的异常类型。最后增加一个根异常考虑没有匹配的其他情况。 三、全局异常处理方式二 1.定义状态码常量 public class StatusCodeConstant {public static final Integer SUCCESS 200; //返回状态正常public static final Integer ERROR 0; //返回错误 }2. 定义基础接口面向接口编程 /*** 响应信息的基础接口**/ public interface ResponseResultBaseInfo {/*** 错误码*/Integer getResultCode();/*** 错误描述*/String getResultMsg(); }3.定义枚举类 /*** 异常处理枚举类*/ public enum ResponseEnum implements ResponseResultBaseInfo{// 数据操作错误定义SUCCESS(200, success),ERROR(500,error);/*** 错误码*/private final Integer resultCode;/*** 错误描述*/private final String resultMsg;ResponseEnum(Integer resultCode, String resultMsg) {this.resultCode resultCode;this.resultMsg resultMsg;}Overridepublic Integer getResultCode() {return resultCode;}Overridepublic String getResultMsg() {return resultMsg;} }4.自定义数据传输对象 /*** 自定义数据传输对象*/ Data public class ResponseResult {/*** 响应代码*/private Integer code;/*** 响应消息*/private String message;/*** 响应结果*/private Object result;public ResponseResult(){}public ResponseResult(ResponseResultBaseInfo res) {this.code res.getResultCode();this.message res.getResultMsg();}/*** 成功*/public static ResponseResult success() {return success(null);}/*** 成功*/public static ResponseResult success(Object data) {ResponseResult responseResult new ResponseResult();responseResult.setCode(ResponseEnum.SUCCESS.getResultCode());responseResult.setMessage(ResponseEnum.SUCCESS.getResultMsg());responseResult.setResult(data);return responseResult;}/*** 失败*/public static ResponseResult error(ResponseResultBaseInfo res) {ResponseResult responseResult new ResponseResult();responseResult.setCode(res.getResultCode());responseResult.setMessage(res.getResultMsg());responseResult.setResult(null);return responseResult;}/*** 失败*/public static ResponseResult error(Integer code, String message) {ResponseResult responseResult new ResponseResult();responseResult.setCode(code);responseResult.setMessage(message);responseResult.setResult(null);return responseResult;}/*** 失败*/public static ResponseResult error(String message) {ResponseResult responseResult new ResponseResult();responseResult.setCode(StatusCodeConstant.ERROR);responseResult.setMessage(message);responseResult.setResult(null);return responseResult;}}5.定义全局异常处理器 /*** 全局异常处理器**/ RestControllerAdvice public class ExceptionHandlerConfig {ExceptionHandler(NullPointerException.class)public ResponseResult nullPointException(NullPointerException e) {return ResponseResult.error(e.getMessage());}ExceptionHandler(Exception.class)public ResponseResult exception() {return ResponseResult.error(ResponseEnum.ERROR);} }6.测试1 GetMapping(/latest)public ResponseResult getSensorDataLatest() {return ResponseResult.success(数据传输成功);}7.测试2 GetMapping(/latest)public ResponseResult getSensorDataLatest() {int a 1;if(a 1)throw new ArithmeticException();return ResponseResult.success(数据传输成功);}四、值得参考的博客 Spring Boot项目优雅的全局异常处理方式全网最新Spring的ExceptionHandler注解使用方法SpringBoot全局异常处理(优缺点)以及统一返回对象、错误码按业务模块设计示例序列化后与数据库数据时间差8小时
http://www.zqtcl.cn/news/681959/

相关文章:

  • 嘉兴品牌网站建设网站开发项目拖延周期
  • 网站版面布局结构网站建设公司公司
  • 给新公司建网站中国互联网企业排名前十名
  • 中国建设银行网站会员用户名网站建设应列入啥费用
  • 网站上面的水印怎么做的广东网站建设公
  • 爱站网关键词长尾挖掘工具wordpress文章外链
  • 做视频剪辑接私活的网站网站商城系统设计
  • thinkphp5做网站做网站需要准备资料
  • 门户网站平台建设方案建e室内设计网cad
  • 西安网站建设收费标准第五次全国经济普查
  • 成品网站货源1688免费襄阳公司网站建设
  • 2020国内十大小说网站排名365网站
  • 潍坊做网站的网络公司网页设计入门教材pdf
  • 影视公司网站建设wordpress 500ms
  • 旅游网站建设公司crm客户管理系统模板
  • 哪个网站有免费的模板阿里云上如何用iis做网站
  • 中山优化网站门户网站建设jz190
  • 湖州服装网站建设网站备案和域名备案区别
  • 网站开发好学嘛网络安全工程师年薪
  • 17网站一起做网店睡衣网线制作流程
  • 广告网站设计公司好吗网站页面设计主要包括
  • 网站的做重庆市建设工程造价信息表
  • 建网站跟建网店的区别怎样营销建设网站
  • 医院做网站的风格乐清网站建设哪家好
  • 手机商城网站方案如何自己搭建微信小程序
  • 做影视免费网站违法吗青岛快速排名优化
  • 网站建设在电子商务中的作用的看法360地图怎么添加商户
  • 网站域名备案与不备案的区别wordpress 注册审核
  • 大学生做企业网站网页设计免费模板情侣
  • 商城网站建设教程网站开发支付宝