プログラミング言語SML#解説 4.1.0版
19 式

19.14 例外処理式 ⟨exp⟩ handle ⟨match⟩

式⟨exp⟩評価中に発生する例外をキャッチし処理する構文であ る. ⟨match⟩では,例外パターンとそのパターンにマッチした例外 の時評価される式の組を関数式と同様に以下の形で記述する.

  ⟨pat1⟩ => ⟨exp1⟩
| ⋯
| ⟨
patn⟩ => ⟨expn⟩

各パターン⟨pati⟩は例外構成子を含むパターンであり例外型 (exn)を持たねばならない. また,各式⟨exp⟩iの型は⟨exp⟩の型と同一である必 要がある. この式の評価は以下のように行われる.

  • •

    式⟨exp⟩を評価する. 評価が正常に終了すれば,その値がこの式全体の値となる.

  • •

    式⟨exp⟩中に例外が発生すれば,その例外がパターン ⟨pat1⟩から⟨patn⟩とこの順に照合され,マッチするパター ン⟨pati⟩があれば,⟨pati⟩の中の変数が対応する例外パ ラメータに束縛され,その束縛が追加された環境で,式⟨expi⟩を評 価し,その結果が式全体の結果となる.

  • •

    マッチする例外パターンがなければ,この式で同一の例外が発生したもと して,この式を囲む式の評価が続行される.