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

做那个的网站adspower指纹浏览器

做那个的网站,adspower指纹浏览器,建设营销型网站流程,精彩app应用下载我们知道在软件运行的过程中,总会出现各种各样的问题,各种各样的异常,而程序员的主要任务之一就是解决在程序运行过程中出现的这些异常。在很多程序员开发的代码中我们会看到在关键的地方为了保证程序能够有一个正常的反馈,大量地使用了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.yayakq.cn/news/736455/

相关文章:

  • 商业网站如何百度搜到网站
  • 免费源码交易网站源码甘肃肃第八建设集团网站
  • 淮安市建设工程安全监督站网站手机广告推广软件
  • 怎么才能创建网站山东济宁网站建设
  • 菏泽网站开发公司锤子网站cms版本
  • 深圳工程造价建设信息网站企业解决方案公司有哪些
  • 建设网站要求怎么做电影网站不违法吗
  • 资源网站推荐遵义在线读者板留言
  • 立网站系手机网址全部出来
  • 网站开发法律做网站需要学会做哪些东西
  • 个人音乐网站程序源码电商广告
  • php网站建设考试移除wordpress上边栏
  • TP5企业网站开发教程百度云网站建设平台官网要点有哪些
  • app比网站的优势中国建设银行招标网站
  • 建设网站的简单编程语言wordpress建官网怎样
  • 如何网上卖东西六安网站建设优化
  • 本地网站做哪方面吸引人个体工商户备案网站备案
  • 北京泵网站建设江苏省建设厅网站官网
  • 园林企业建设网站做个公司展示网站多少钱 后期有什么费用
  • 泰州网站设计舆情报告分析
  • 如何把网站建设成营销型网站想做网店怎么做
  • 福田专门做网站推广公司无锡网站制作哪些
  • 设计师必须知道的网站网站建设小程序
  • 浏览网站怎么用手机做网站模板对seo的影响
  • 网站建设工作部署会杭州装饰网站建设方案
  • 手机分销网站建设wordpress 搜索媒体库
  • 优秀手机网站欣赏广州白云区公司注册
  • 河南网站建设设计价格wordpress+刷新
  • 金融网站开发文档下载网络推广员岗位职责
  • 廊坊网站网站建设化工厂网站建设