当前位置: 首页 > 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.pierceye.com/news/681959/

相关文章:

  • 直播网站开发公司赣州网站建设hyxxjs
  • 佛山电商网站制作wordpress评论显示地址
  • 自己怎样用手机建网站化妆品网站模板免费下载
  • 当今做哪个网站致富早期网页游戏
  • 手机网站开发指南西安做网站的
  • php网站搬家教程装修网站建设方案书
  • 上海建网站工作室网络设计培训学校长沙
  • 手机自建网站平台如何寻找seo网站建设客户
  • 网站按关键词显示广告图片这样制作公司网站
  • 桂林建站平台哪家好北京注册公司查询
  • c 高性能网站开发淄博学校网站建设方案
  • 网站建设网站维护的具体内容是什么wordpress主题模板调用
  • 专业网站建设公创建app软件
  • 佛山哪家网站建设比较好互联网内容服务商有哪些
  • 商家在携程旅游网站怎样做宣传ppt免费下载素材库
  • 下载建设银行官方网站下载网站模块介绍
  • 网站定制开发公司推荐网站续费问题
  • 专注七星彩网站开发出租云服务器上建网站
  • 天津做网站.都找津坤科技中国菲律宾历史战绩
  • 网站建设合同的效力网站建设公司需要交税么
  • 色弱可以做网站开发吗建网站的步骤及方法
  • 卖衣服的网站排名discuz分类信息模板
  • 广西网站开发公司招聘网页制作软件
  • 网站框架一般用什么做dede搭建网站教程
  • 郑州网站开发比较好的网络公司网络推广公司有多少家
  • 银川做网站服务免费word模板
  • 个人网站备案方法网站开发制作云盘
  • 培训做网站传奇手游发布网站
  • 中国保密在线网站培训系统手机购物平台
  • 厦门网站制作建设沐风 wordpress 主题