例外に頼らないエラーハンドリング ─ Result型と関数合成による Railway Oriented Programming の実践 by 梶川 琢馬

PHPカンファレンス福岡2025
レギュラートーク(15分)

例外に頼らないエラーハンドリング ─ Result型と関数合成による Railway Oriented Programming の実践

kajitack 梶川 琢馬 kajitack
1

PHP では try-catch による例外処理が一般的ですが、「どこで例外を処理すべきか?」「本当にこの場面で例外を使うべきなのか?」と迷ったことはありませんか?
過剰なエラーハンドリングや、catch したけれど何もしていない“握りつぶし”が積み重なると、責任の所在が曖昧になり、コードの見通しや保守性にも悪影響を及ぼします。

こうした課題へのヒントとして、Rust などの言語で採用されている Result 型の考え方を、PHP に応用するアプローチがあります。
Result 型は、失敗を型として明示的に扱い、成功も失敗も返り値で表現する設計手法です。

本セッションでは、さらに一歩進んで、処理の流れを線路のように“合成”する「Railway Oriented Programming」の考え方を取り入れ、複雑な分岐処理をシンプルに記述する実践的な方法を紹介します!