孤尽班第三次课

导读:本篇文章讲解 孤尽班第三次课,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

孤尽班第三次课

Java 的异常机制

道路千万条 ,安全第一条

日志不规范 ,排查两行泪

try catch finally

生成异常 捕获异常 抛出异常(throw) 声明异常(throws)

异常抛出与捕获的原则

非必要不使用异常
使用描述性消息抛出异常
力所能及的异常一定要处理
异常或略要有理有据

特殊NPE 场景及其处理策略

使用Optional 优雅的防止NPE

日志的功能

监控告警 记录行为轨迹 快速定位问题

在Controller 层同一捕获异常

  1. 全局异常处理组件GlobalExceptionHandler 的定义和 使用

API 层异常设计设计实践

  1. 严格约束条件判断 (API 层要严格校验保证进入系统的数据是合法,合规的,基本判断约束)
  • (null 值等基本判断)
  • 实体属性约束
  • 满足JSR 303 基础判断
  1. 客户端返回要友好
  • API 层异常要给客户端返回状态码 及其对应得错误消息
  1. 下层异常转移
  • 将Service 层 Manager 层异常转译 成Api 层异常
  1. 错误码文档要规范
    系统状态码对应的异常或者错误信息以及可能发生异常的原因,要整理成 便于用户查阅的文档,同步给结构调用

Service 层 异常设计实践

  1. 严格约束条件判断
  • Service 层严格约束条件判断避免脏数据
  • 基本判断约束 (null 值 等于基本判断)
  • 实体属性约束
  • 满足 JSR 303 等基础判断
  • 业务条件约束
    (需求提出的不同的业务约束)
  1. 抛出指定类型的异常
  • Service 层 抛出带状态码或者指定类型的异常
    3.转译 DAO 层 异常
  • 将DAO 层 的 异常转移为 Service 层 或者 高层 能够理解的异常

DAO 数据处理层异常 日志实践

  • A 通用 DaoException 使用继承自Runtime Exception 的通用Dao Exception 封装 DAO 层异常并向上抛出
  • B 框架层面有选择性的记录数据操作
    在DAO 层 (框架层面) 有选择的记录数据操作的有效信息,比如: 每次操作的原始SQL 语句及执行 时间

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/77142.html

(0)
小半的头像小半

相关推荐

半码博客——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!