mcpField
1
143-java-functional-exception-handling

143-java-functional-exception-handling

github.com/jabrena开发456369 次安装1 天前更新
代码仓库

关于 143-java-functional-exception-handling

面向 Java 开发的技能,指导编码 Agent 用函数式错误处理替代过度依赖异常的控制流,并通过验证、重构和构建检查保障变更。

主要功能

  1. 01用 Optional 表示可空值
  2. 02用 VAVR Either 表示业务失败
  3. 03使用 CompletableFuture 处理异步错误
  4. 04结构化日志与错误类型建模
  5. 05变更前验证,完成后构建检查

适用场景

  1. 01重构过度依赖异常的 Java 流程
  2. 02使用 Result 或 Either 表示业务失败
  3. 03检查受检与非受检异常的处理方式

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jabrena/plinth --skill 143-java-functional-exception-handling

安装后在 Claude Code 中输入/143-java-functional-exception-handling确认已加载。

附带文件references/143-java-functional-exception-handling.md

详细介绍

Java 函数式异常处理最佳实践

在 Java 中识别并应用函数式异常处理最佳实践,通过用单子错误类型取代过度使用异常,提升错误信息的清晰度、可维护性和性能。

此 Skill 涵盖哪些内容?

  • 使用 Optional<T> 表示可空值,而不是抛出 NullPointerException 或 NotFoundException
  • 使用 VAVR Either<L,R> 表示可预期的业务逻辑失败
  • 使用 CompletableFuture<T> 处理异步错误
  • 使用密封类和记录类构建丰富的错误类型层次结构,并进行穷尽式模式匹配
  • 使用基于枚举的错误类型表示简单的失败情况
  • 函数组合:使用 flatMap/map/peek/peekLeft 链接可能失败的操作
  • 结构化日志:业务失败使用 warn/info,系统失败使用 error
  • 遵循受检与非受检异常的使用规范
  • 在无法避免异常时,通过异常链保留完整的因果上下文

范围: 参考资料按核心领域中的示例(良好/不良代码模式)组织。请根据适用示例应用建议。

约束

在应用任何函数式异常处理更改之前,请确保项目能够通过验证。引入 Either 类型时,请确认 VAVR 依赖(io.vavr:vavr)和 SLF4J 已存在。

  • 强制要求:应用任何更改之前,运行 ./mvnw validate 或 mvn validate
  • 安全要求:如果验证失败,请立即停止;在项目状态有效之前,不要继续
  • 依赖项:引入 Either 类型时,请确认 VAVR(io.vavr:vavr)和 SLF4J 已存在
  • 验证:应用改进后,运行 ./mvnw clean verify 或 mvn clean verify
  • 应用之前:阅读参考资料,了解每种函数式异常处理模式的详细良好/不良示例、约束和防护措施

何时使用此 Skill

  • 使用函数式异常处理改进代码
  • 应用函数式异常处理
  • 使用函数式异常处理重构代码
  • 使用 Result 或 Either 类型为 Java 错误建模
  • 将大量依赖异常的流程替换为函数式错误处理

工作流

  1. 在进行函数式异常处理更改之前验证项目

运行 ./mvnw validate 或 mvn validate,如果验证失败,请立即停止。

  1. 检查所需依赖项

引入 Either 时,请在实现之前确认 VAVR(io.vavr:vavr)和 SLF4J 已存在。

  1. 阅读函数式异常处理参考资料并确定目标

阅读 references/143-java-functional-exception-handling.md,找出可用单子错误类型替换异常密集型控制流的位置。

  1. 应用函数式异常处理重构

根据需要实现 Optional/Either/异步错误处理模式,同时采用结构化日志并明确错误契约。

  1. 通过完整构建进行验证

应用改进后,运行 ./mvnw clean verify 或 mvn clean verify。

参考资料

详细指南、示例和约束请参见 references/143-java-functional-exception-handling.md。

评论

支持 Markdown