kotlin における例外について

ふと思ったのでメモ。

  • 例外なくアーキテクチャレベルでの扱いとなり、アーキテクチャ設計書で解説されるべきとか。
  • java で言うところの検査例外は sealed class の戻り値で扱うとか。
  • 検査例外のバケツリレーが発生するような場所はアーキテクチャレベルで実行時例外*1としての扱いを検討するのが良さげとか。*2

preconditions, postconditions and assertions - Be an Idealistic Realist も参照のこと。

*1:kotlin上ならRuntimeExceptionである必要は無いけどjavaとの互換性を考えると実行時例外にしておいたほうが無難だと思われ。

*2:多くの場合、実行時例外の発生可能範囲、ハンドリングを行う境界、具体的なクラスや仕組みなどが定義されると思われ。例えば、エラーが起きてもエラーメッセージだけ表示させてアプリを落とさないようなユーザー要件がある場合に、実行時エラーをスローしてUI側で受けてエラー表示と握りつぶしをする仕組みとか。