Program > JavaScript > AltJS > Elm > Elmガイド > エラーハンドリング > Result
Elmには様々なデータ構造(型)が用意されており、Maybe型の他にResult型というのが用意されています。
#code(haskell){{
type Result error value
= Ok value | Err error
}}
この型のポイントは、問題が起こったときに問題が起こったということだけではなくさらなる情報を提供できるところにあります。
この情報はエラーを通知したりエラーに対処したりするのにとても役に立ちます。
Maybe型はエラーになったときNothingしか返さないけど、Result型はエラーになったとき細かく制御できる=エラーメッセージを見せることができる、という違いがあるんですね。
Result型はエラーに対処するのにも役に立ちます。
#code(haskell){{
type Error
= BadUrl String | Timeout | NetworkError | BadStatus Int | BadBody String
ここでElm本の説明を参照してみましょう。
#html{{
table border="0" cellpadding="5"><tr><td valign="top"><a href="https://www.amazon.co.jp/exec/obidos/ASIN/4863542224/vertex9-22/" target="_blank"><img src="
" border="0"></a></td><td> </td><td valign="top"><a href="https://www.amazon.co.jp/exec/obidos/ASIN/4863542224/vertex9-22/" target="_blank">基礎からわかる Elm</a><br>鳥居 陽介<br>シーアンドアール研究所<br>2019-02-27<br>¥ 2,840</td></tr></table>
}}
(p.91)
■Result
Resultは失敗するかもしれない結果を表すデータ構造です。Maybeと似ていますが、こちらは失敗の原因を情報として持っています。
Resultはカスタム型で次のように定義されています。type Result err a = Err err | Ok a