调用接口异常怎么解决,调用医院接口异常

首页 > 上门服务 > 作者:YD1662024-01-18 00:34:03

目录

前言
一、接口异常的分类
  1. 业务异常(Business exception)
  2. 系统异常(System Exception)
  3. 客户端异常(Client Exception)
二、接口异常的常见处理办法
  1. 异常捕获和处理
  2. 统一异常处理器
  3. 抛出自定义异常
  4. 返回错误码和错误信息
  5. 跳转到指定错误页
三、接口异常的统一处理
  1. @ControllerAdvice全局异常处理器的使用
  2. 自定义Filter中异常的处理
四、优化无痕窗口下的重新登录体验
  1. 在WebFilter中获取当前请求的全路径
  2. 在WebFilter抛出401错误的地方设置httpServletResponse的header
  3. 在CustomErrorController中获取到这个跳转链接
  4. 登录提交时将redirectURL参数一并提交
  5. 验证通过后重定向到redirectURL

前言

调用接口异常怎么解决,调用医院接口异常(1)

大家好!一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

作为一名从业已达10几年的老码农,我的工作主要是开发后端Java业务系统,包括各种管理后台和小程序等。在这些项目中,我设计过单/多租户体系系统,对接过许多开放平台,也搞过消息中心这类较为复杂的应用,但幸运的是,我至今还没有遇到过线上系统由于代码崩溃导致资损的情况。这其中的原因有三点:一是业务系统本身并不复杂;二是我一直遵循某大厂代码规约,在开发过程中尽可能按规约编写代码;三是经过多年的开发经验积累,我成为了一名熟练工,掌握了一些实用的技巧。

BUG对于程序员来说实在是不陌生,当代码出现BUG时,异常也会随之出现,但BUG并不等于异常,BUG只是导致异常出现的一个原因。导致异常发生的原因非常多,本篇文章我也主要只讲一下接口相关的异常怎么处理。

一、接口异常的分类

在接口设计中,应该尽量避免使用异常来进行控制流程。接口应该尽可能返回明确的错误码和错误信息,而不是直接抛出异常。

1. 业务异常(Business Exception)

这是接口处理过程中可能出现的业务逻辑错误,例如参数校验失败、权限不足等。这些异常通常是预期的,并且可以提供相应的错误码和错误信息给调用方。

2. 系统异常(System Exception)

这是接口处理过程中可能出现的非预期错误,例如数据库异常、网络异常等。这些异常通常是未知的,并且可能导致接口无法正常响应。这种错误不仅需要记录异常信息通知系统管理员处理,还需要封装起来做好提示,不能直接把错误返回给用户。

3. 客户端异常(Client Exception)

这是调用方在使用接口时可能出现的错误,例如请求参数错误、请求超时等。这些异常通常是由于调用方的错误导致的,接口本身没有问题。可以根据具体情况选择是否返回错误信息给调用方。

二、接口异常的常见处理办法1. 异常捕获和处理

在接口的实现代码中,可以使用try-catch语句捕获异常,并进行相应的处理。可以选择将异常转化为合适的错误码和错误信息,然后返回给调用方。或者根据具体情况选择是否记录异常日志,并通知系统管理员进行处理。

2. 统一异常处理器

可以使用统一的异常处理器来统一处理接口异常。在Spring Boot中,可以使用@ControllerAdvice和@ExceptionHandler注解来定义一个全局的异常处理器。这样可以将所有接口抛出的异常统一处理,例如转化为特定的错误码和错误信息,并返回给调用方。

3. 抛出自定义异常

可以根据业务需求定义一些自定义的异常类,继承RuntimeException或其他合适的异常类,并在接口中抛出这些异常。这样可以在异常发生时,直接抛出异常,由上层调用方进行捕获和处理。

4. 返回错误码和错误信息

可以在接口中定义一套错误码和错误信息的规范,当发生异常时,返回对应的错误码和错误信息给调用方。这样调用方可以根据错误码进行相应的处理,例如展示错误信息给用户或者进行相应的逻辑处理。
例如这样的弹窗提示

调用接口异常怎么解决,调用医院接口异常(2)

5. 跳转到指定错误页

比如遇到401、404、500等错误时,SpringBoot框架会返回自带的错误页,在这里我们其实可以自己重写一些更美观、更友好的错误提示页,最好还能引导用户回到正确的操作上来,例如这样

调用接口异常怎么解决,调用医院接口异常(3)

而不是下面这样

调用接口异常怎么解决,调用医院接口异常(4)

首页 1234下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.