服务错误异常处理

81 阅读2分钟

异常处理概述

什么是服务错误异常处理

  • 服务错误异常处理是指在应用程序中捕获和管理处理错误的过程
  • 涉及对程序执行中出现的预期和非预期错误的响应

为什么要做错误异常处理

  • 提高用户体验: 用户得到清晰的错误信息,而不是不明确的系统报错
  • 便于开发者调试: 清晰的错误分类和描述加速问题的解决
  • 提高系统鲁棒性: 错误和异常处理是确保程序健壮性的关键

最佳实践

结构化异常处理

  • 使用专门的异常类来代表不同类型的错误
  • 尽量避免抛出通用异常

统一错误响应

  • 错误响应应该有一个统一的格式,不论错误的类型

状态码的正确使用

  • Http响应都应该伴随一个准确的Http状态码

全局异常处理

  • 实现全局异常处理器来捕获整个应用程序的异常
  • 减少在业务逻辑代码中处理异常的需要

日志记录

  • 记录异常信息以便于追踪
  • 包含足够的上下文以解释异常的原因

ResponseEntity详解

在公开的方法前加入

ResponseEntity<T> method_name(){
    return ResponseEntity.ok(T body)
}
  • ResponseEntity.ok() ➡️ 200

设置 header

ResponseEntity<T> method_name(){
    return ResponseEntity.status(HttpStatus.OK)
                         .header("headerName", "headerValues")
                         .body(T body);
}

各状态码设置

// 200
ResponseEntity.ok().herader()
// 404
ResponseEntity.notFound().herader()

模仿AWSException构建山竹异常处理

docs.aws.amazon.com/sdk-for-jav…

需要提供的错误信息

  • Returned HTTP status code
  • Returned AWS error code(业务错误码)
  • Detailed error message from the service in the AwsErrorDetails class
  • AWS request ID for the failed request(请求ID,用于追踪错误)

Exceptions and retry behavior(异常重试)