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

19.14 例外処理式 exp handle match

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

  pat1 => exp1
|
|
patn => expn

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

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

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

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