关于 143-java-functional-exception-handling
面向 Java 开发的技能,指导编码 Agent 用函数式错误处理替代过度依赖异常的控制流,并通过验证、重构和构建检查保障变更。
主要功能
- 01用 Optional 表示可空值
- 02用 VAVR Either 表示业务失败
- 03使用 CompletableFuture 处理异步错误
- 04结构化日志与错误类型建模
- 05变更前验证,完成后构建检查
适用场景
- 01重构过度依赖异常的 Java 流程
- 02使用 Result 或 Either 表示业务失败
- 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 错误建模
- 将大量依赖异常的流程替换为函数式错误处理
工作流
- 在进行函数式异常处理更改之前验证项目
运行 ./mvnw validate 或 mvn validate,如果验证失败,请立即停止。
- 检查所需依赖项
引入 Either 时,请在实现之前确认 VAVR(io.vavr:vavr)和 SLF4J 已存在。
- 阅读函数式异常处理参考资料并确定目标
阅读 references/143-java-functional-exception-handling.md,找出可用单子错误类型替换异常密集型控制流的位置。
- 应用函数式异常处理重构
根据需要实现 Optional/Either/异步错误处理模式,同时采用结构化日志并明确错误契约。
- 通过完整构建进行验证
应用改进后,运行 ./mvnw clean verify 或 mvn clean verify。
参考资料
详细指南、示例和约束请参见 references/143-java-functional-exception-handling.md。
评论
支持 Markdown