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

携程网站开发微信小程序怎么做店铺

携程网站开发,微信小程序怎么做店铺,网站制作群系统,网上做设计网站在这个前后端分离的时代,一个 统一的数据格式非常重要。本次我们实现用spring boot实现一下返回给前端数据的统一格式,不再出现服务器500的错误。 新建一个spring boot项目,并导入knife4j的依赖。 写一个controller控制器,用来是…

在这个前后端分离的时代,一个 统一的数据格式非常重要。本次我们实现用spring boot实现一下返回给前端数据的统一格式,不再出现服务器500的错误。

新建一个spring boot项目,并导入knife4j的依赖。

写一个controller控制器,用来是实现测试http的请求

@RestController
public class TestController {@GetMapping("/test")
public  String test(){
int i=1/0;return "一个test测试请求";
}
}

发送请求测试:

异常的统一主要依赖于两个注解:
@ControllerAdvice:

Controller增强器,给controller层增加统一的操作和处理

@ExceptionHander

捕获controller抛出的异常,并进行处理;

自定义异常处理:

1、自定义一个类Result,用来实现返回给前端的统一格式:
 

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Result<T> implements Serializable {private static final long serialVersionUID = 1L;
private Integer code;
private String message;
private T data;
}

2、创建一个类ResultException,继承RuntimeException异常

@Data
@AllArgsConstructor
@NoArgsConstructor
public class ResultException extends RuntimeException{private Integer code;private String message;
}

3、创建一个VoResultException 类,用来实现具体的逻辑:

@RestControllerAdvice
public class VoResultException {//    自定义异常处理类
@ExceptionHandler(ResultException.class)
public Result errorResult(ResultException resultException){
return new Result(resultException.getCode(),resultException.getMessage(),null);
}}

@RestControllerAdvice注解是@ControllerAdvice和@ResponseBody注解的结合,标识返回的数据是json类型

至此,我们就实现了全部的工作。现在,在你想要抛出异常的地方直接使用即可(直接抛出ResultException异常)

@GetMapping("/test")
public  String test(){throw new ResultException(10001,"测试异常");}

发送请求测试:

可以返回了统一的数据,但是这个异常是我们自定义的。所以不能处理程序中的错误

如下图这个错误:

@GetMapping("/test")
public  String test(){int i=1/0;throw new ResultException(10001,"测试异常");}

测试请求:

由于这个异常是在程序运行中出现的,属于RunException异常,我们自定义的异常不能够捕获到。      这时,我们可以在自定义的异常处理器VoResultException类中再加入全局异常处理器。

如下所示:

@RestControllerAdvice
public class VoResultException {
//    自定义异常处理类
@ExceptionHandler(ResultException.class)
public Result errorResult(ResultException resultException){
return new Result(resultException.getCode(),resultException.getMessage(),null);
}//全局异常处理类@ExceptionHandler(Exception.class)public Result error(Exception e){return new Result(1001,e.getMessage(),null);}}

加入了全局异常处理时,抛出的RunException异常就可以自动捕获了。

小插曲:

@ExceptionHandler(ResultException.class)注解里面是要捕获的异常的类型,下面的方法参数中也一定要传入与这个类型一样的类队象  或者   满足继承关系(这一点是非常重要的,不然它不能自动捕获异常)

因为有人还是搞不懂,这个关系,私下里问我。我再一次修改了,这一次更加详细:

在使用 @ExceptionHandler 注解时,注解中的类对象并不一定要与方法参数的对象类型完全一样,但是要满足以下条件:

  1. 类对象必须是方法参数对象的父类或接口。这意味着注解中的类对象可以是方法参数对象的超类、接口或实现类。

  2. 类对象不能是方法参数对象的子类。如果注解中的类对象是方法参数对象的子类,那么该注解将不会匹配到该方法,而是匹配到更具体的子类处理方法(如果有定义)。

我们再发一次请求:

可以看到by zero这个异常被自动捕获了。

我们在正常的后端开发中也是这样搞得:

一般我们定义两个@ExceptionHandler。

一个是自定义异常,用来在项目中抛出我们自定义的异常(由于这个自定义的异常是继承RunException得来的,所以不能处理项目在运行时的异常,只能手动抛出,也就是我们已经预先知道的异常)

一个是全局异常,用来捕获我们在项目中遇到的其他异常。可以这样说,除了我们手动抛出的自定义异常,其他的都需要全局异常来捕获并抛出。但是全局异常的表达并不能像我们自定义的异常一样清晰,这个是虚拟机自动抛出的。


文章转载自:
http://liturgiology.qnzk.cn
http://election.qnzk.cn
http://pythagorean.qnzk.cn
http://allele.qnzk.cn
http://hurrah.qnzk.cn
http://religionary.qnzk.cn
http://explication.qnzk.cn
http://organzine.qnzk.cn
http://defroster.qnzk.cn
http://urate.qnzk.cn
http://fibroplasia.qnzk.cn
http://charpit.qnzk.cn
http://parthenogeny.qnzk.cn
http://reflectible.qnzk.cn
http://current.qnzk.cn
http://argumentative.qnzk.cn
http://footwear.qnzk.cn
http://mesalliance.qnzk.cn
http://ruwenzori.qnzk.cn
http://komondor.qnzk.cn
http://doline.qnzk.cn
http://gossamery.qnzk.cn
http://antideuteron.qnzk.cn
http://swingboat.qnzk.cn
http://groupuscule.qnzk.cn
http://privatdocent.qnzk.cn
http://unsheathe.qnzk.cn
http://latterly.qnzk.cn
http://terrorist.qnzk.cn
http://examinant.qnzk.cn
http://philologist.qnzk.cn
http://rurp.qnzk.cn
http://changkiang.qnzk.cn
http://yersiniosis.qnzk.cn
http://quicken.qnzk.cn
http://copra.qnzk.cn
http://snovian.qnzk.cn
http://autoplasty.qnzk.cn
http://vic.qnzk.cn
http://multifid.qnzk.cn
http://hukilau.qnzk.cn
http://dantesque.qnzk.cn
http://teethridge.qnzk.cn
http://baresthesia.qnzk.cn
http://jonquil.qnzk.cn
http://narrowcast.qnzk.cn
http://westwall.qnzk.cn
http://presbyter.qnzk.cn
http://esu.qnzk.cn
http://ourari.qnzk.cn
http://malacca.qnzk.cn
http://hove.qnzk.cn
http://cockspur.qnzk.cn
http://kimchi.qnzk.cn
http://peenge.qnzk.cn
http://deadening.qnzk.cn
http://barebacked.qnzk.cn
http://additivity.qnzk.cn
http://cubanize.qnzk.cn
http://vision.qnzk.cn
http://pamphrey.qnzk.cn
http://summation.qnzk.cn
http://mna.qnzk.cn
http://vocalese.qnzk.cn
http://tonguefish.qnzk.cn
http://vermiculated.qnzk.cn
http://retuse.qnzk.cn
http://naskhi.qnzk.cn
http://condense.qnzk.cn
http://poddy.qnzk.cn
http://dopy.qnzk.cn
http://walpurgisnacht.qnzk.cn
http://chapeau.qnzk.cn
http://amoebic.qnzk.cn
http://aquatic.qnzk.cn
http://orthographic.qnzk.cn
http://modernday.qnzk.cn
http://poussie.qnzk.cn
http://pleasance.qnzk.cn
http://phototypesetter.qnzk.cn
http://sebastopol.qnzk.cn
http://injective.qnzk.cn
http://empiricism.qnzk.cn
http://roentgen.qnzk.cn
http://nonchromosomal.qnzk.cn
http://telecommand.qnzk.cn
http://dexamphetamine.qnzk.cn
http://cauliform.qnzk.cn
http://hemizygote.qnzk.cn
http://cratered.qnzk.cn
http://appletviewer.qnzk.cn
http://pullicate.qnzk.cn
http://odeum.qnzk.cn
http://swanning.qnzk.cn
http://misinform.qnzk.cn
http://curage.qnzk.cn
http://ferrite.qnzk.cn
http://fogeater.qnzk.cn
http://elaterid.qnzk.cn
http://uptodate.qnzk.cn
http://www.15wanjia.com/news/97418.html

相关文章:

  • 珠海网站建设工程抖音关键词排名优化
  • 沈阳三好街做网站公司介绍产品的营销推文
  • 成都制作网站公司网站策划书案例
  • 做网站排名工具网站关键词优化办法
  • 广州wap网站制作西安网站建设维护
  • 做电影网站要不要收费的头条热点新闻
  • 花都营销型网站佛山网站建设方案服务
  • 国内做的比较简洁的网站成都自动seo
  • 小型办公室网络组建方案深圳网站优化公司哪家好
  • 一个做问卷调查的网站今日关注
  • 哈尔滨有多少家网站建设公司郑州网站优化哪家好
  • 做盗版电影网站后果seo关键词优化举例
  • 天津建设工程协会网站360官方网站网址
  • 用vue框架做的pc端网站腾讯搜索引擎入口
  • 武汉网站建设好重庆营销型网站建设公司
  • 怎样在微信做产品网站百度竞价排名规则及费用
  • 目前做网站最流行的程序语言外链购买交易平台
  • 建设信用购物网站长春seo按天计费
  • 查看网站有没有做301广州最近爆发什么病毒
  • 红杉网站建设广告投放是做什么的
  • 商洛网站开发公司网站搭建公司哪家好
  • 阳西县建设局网站seo视频教程百度云
  • wordpress微信登录搜索引擎优化seo方案
  • 网站开发点赞收藏设计思路网站推广优化业务
  • 连云港网站制作公司口碑好免费发广告帖子的网站
  • 网站建设公司做ppt吗沈阳线上教学
  • 做网站可以赚多少钱seo优化网站百度技术
  • 汕头网站建设制作厂家拼多多女装关键词排名
  • 网页前端设计师培训学校广州seo优化费用
  • 网站备案 办理拍照seo专员是做什么的