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

做网站 前途大连seo外包平台

做网站 前途,大连seo外包平台,响应式网站优势,wordpress代理服务器我们知道在软件运行的过程中,总会出现各种各样的问题,各种各样的异常,而程序员的主要任务之一就是解决在程序运行过程中出现的这些异常。在很多程序员开发的代码中我们会看到在关键的地方为了保证程序能够有一个正常的反馈,大量地使用了try catch finally语句。 大量的try …

在这里插入图片描述
  我们知道在软件运行的过程中,总会出现各种各样的问题,各种各样的异常,而程序员的主要任务之一就是解决在程序运行过程中出现的这些异常。在很多程序员开发的代码中我们会看到在关键的地方为了保证程序能够有一个正常的反馈,大量地使用了try catch finally语句。

  大量的try catch语句不但增加了代码的冗余,而且还降低了代码的可读性。所以在Spring Boot 中就有人想将这些try catch的异常处理通过全局的方式进行处理,也就是说在我们正常的开发中就不需要再去关心这些异常的处理了。我们只需要在一个地方进行统一的配置就可以完成全局异常的处理了。

全局异常处理介绍

  其实在Spring 3.x的版本中就已经有全局异常处理的注解被提出使用了。例如@ControllerAdvice、@ExceptionHandler、@InitBinder、@ModelAttribute 等等注解。

  而这些注解从字面上来看与异常有关的就只有一个@ExceptionHandler 注解,也就是异常处理器的关键注解。其实在Spring中的异常处理机制有两种,一种是全局异常处理、一种是局部异常处理。那么什么是全局异常处理?什么是局部异常处理?

  首先局部异常处理顾名思义就是在某些方法或者某些类上对该类中存在的异常进行处理,主要使用的注解就是@ExceptionHandler和@Controller两个注解。这里需要注意的是只有指定了@Controller的类才会被@ExceptionHandler注解所捕获到对应的异常,在实际开发过程中,Controller是不可控的,所以说,这个方式显然不适合在大批量的Controller中使用。那么这就需要用到我们的全局异常处理机制了

  全局异常处理机制,首先来讲它可以完成的异常处理在数量上远比局部异常处理要多,其次就是它需要建立一种与局部异常处理机制不同的异常处理全局捕获的方式。所以就出现了@ControllerAdvice注解,,这个注解搭配上@ExceptionHandler 就可以彻底解决全局异常处理的问题。当然后续还出现了@RestControllerAdvice注解,其实这个注解与@ControllerAdvice注解的区别与联系就如同前面提到过的@Controller注解与@RestController注解是类似的,都是Response的返回值进行了序列化的处理。

Spring Boot中的异常分类

  我们知道其实异常处理是Java语言本身的特性,所以Java语言本身就会有很多的异常,更不用说是在SpringBoot中存在的异常了,也是非常多的。

  这里我们根据Spring Boot中的业务场景不同来对异常进行分类。一种就是进入业务之前的异常,一种就是在业务逻辑中的异常。如图所示,图片来源网络。
在这里插入图片描述
  在进入业务逻辑之前的异常一般是由Servlet操作引起的,一般需要处理的异常有如下一些

  • NoHandlerFoundException:表示客户端的请求在服务端没有找到对应的处理器,这个异常会抛出404的错误。
  • HttpRequestMethodNotSupportedException:从异常描述可以知道,它表示在使用HTTP请求的时候请求方法不支持,也就是说原本该使用GET请求的方法,使用了POST请求方法,这个异常会抛出405的错误
  • HttpMediaTypeNotSupportedException:这个异常表示客户端请求的媒体类型错误,也就是说原本需要使用JSON数据请求的却用的是x-form-data的数据进行请求。一般会抛出415的异常
  • MissingPathVariableException:表示路径参数未找到,一般就是参数传输错误,引起的错误就是400的错误。

  而进入业务逻辑之后的异常则是有代码内部引起的一般常见的错误就是空指针异常。这个需要根据具体的业务逻辑以及对应的业务场景进行处理。

在Spring Boot中如何对这些异常进行统一处理呢?

  在异常处理的时候一般开发人员关注的就是什么地方的异常,出现异常的原因是什么?在我们统一处理的时候需要注意哪些问题?下面我们就带着这些问题一一来解答。
  统一异常处理的步骤很简单,我们还是以前面创建的项目来做演示

  • 第一步、需要创建一个全局异常处理的处理类
  • 第二步、在这个类上标注@RestControllerAdvice注解,或者使用@ControllerAdvice 和@ResponseBody组合来实现
  • 第三步、方法上标注上对应的异常处理的注解@ExceptionHandler,并且指定需要捕获的异常是什么,也可以指定多个。

  根据以上的步骤我们来创建对应的处理代码。

@RestControllerAdvice
@Slf4j
public class GlobalExceptionHandler {@ExceptionHandler(TestException.class)public String testExceptionHandler(TestException testException){log.info("全局异常处理",testException.getMessage());return "异常被全局捕获";}}

  自定义异常

http://www.khdw.cn/news/53185.html

相关文章:

  • 松原做招聘的网站有哪些2020年度关键词有哪些
  • 网络销售怎么找客户上海百度提升优化
  • 公司网站建设说明书上海关键词排名手机优化软件
  • 人民日报客户端人民号重庆排名seo公司
  • 广州黄埔做网站网上哪里接app推广单
  • 上海公司企业网站怎么做百度指数查询官网入口登录
  • 网站推广广告词网站提交入口
  • 怎么做代购彩票网站吗网络推广专员是干什么的
  • 手机网站做安卓客户端品牌运营岗位职责
  • 企业邮箱是什么?佛山旺道seo
  • 个人备案购物网站公司想做网络推广贵不
  • 淘宝天猫做网站咨询宁波网站制作优化服务
  • 在网站怎么做代销如何推广一款app
  • 怎样做自己的销售网站6营销型网站建设优化建站
  • 微信分享网站短链接怎么做网站google搜索优化
  • 做论坛网站时应该注意什么制作网站的平台
  • 做网站要有什么功能有没有推广app的平台
  • 财经直播网站建设手机百度搜索app
  • 买了域名之后怎么做网站中国十大广告公司排行榜
  • 温州网络公司网站建设seo权威入门教程
  • 网站建设费用 优帮云公司的网站
  • 开发板公测的更新频率四川游戏seo整站优化
  • 网站原型是产品经理做网络推广是什么
  • 网站开发慕枫中山网站建设
  • 建网站免费看片子用什么app免费苹果手机
  • 中国工程局人才招聘网seo sem是啥
  • 网站如何做团购知乎推广公司
  • 招聘网站如何建设免费域名注册二级域名
  • dw做网站设计百度关键词点击排名
  • 网站推广联盟关闭站长工具seo综合查询