mcpField
1
143-java-functional-exception-handling

143-java-functional-exception-handling

github.com/jabrena開発456369 回インストール1 日前に更新
リポジトリ

143-java-functional-exception-handling について

Java の例外に依存した制御フローを関数型エラー処理へ置き換えるためのスキルです。Optional、VAVR Either、CompletableFuture などを使い、変更前の検証からリファクタリング、ビルド確認までを案内します。

主な機能

  1. 01Optional による null 許容値の表現
  2. 02VAVR Either による業務エラーの表現
  3. 03CompletableFuture による非同期エラー処理
  4. 04構造化ログとエラー型の設計
  5. 05変更前の検証と変更後のビルド確認

活用シーン

  1. 01例外に依存する Java の処理フローのリファクタリング
  2. 02Result または 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 の関数型例外処理のベストプラクティスを特定し、適用します。

このスキルで扱う内容

  • Optional<T> を使用して、NullPointerException や NotFoundException をスローする代わりに null 許容値を扱う
  • 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 を実行してください
  • 適用前:関数型例外処理の各パターンについて、詳細な良い/悪い例、制約、安全対策をリファレンスで確認してください

このスキルを使用する場面

  • 関数型例外処理を用いてコードを改善する
  • 関数型例外処理を適用する
  • 関数型例外処理を用いてコードをリファクタリングする
  • 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 を参照してください。

コメント