あれ
2023/4/2 13:23:00
〔恢復可能な〕例外を投げるべきでない100の理由
参照透過性が失なわれる
型安全でない(Paul Chiusano,Runar Bjarnason,(2015))
〔最後の「参考文献」節を参照〕
例外を投げる代わりに値を返す
正常・異常の直和を表現できる型を使う
arrow.core.Either<Throwable, T>
これってKotrinに限った話なのかな?
それとも一般に通用する?
→
Result型を使うのはここ最近の流行りっぽい?
Kotrin、Rust、TypeScriptで事例が見られる
代数的データ型があるなら Either や Result 的なものがあるから、普通にそちらを使うべき
例外として飛びうる型の網羅性が弱いのはその通り (Java でさえ非検査例外は throws での列挙の必要がない)
例外の処理を呼出元に強制しない (あるいは propagation が明示的でない) のに問題があるのも (一般論として) その通り
2023-04-02