exn型,exception宣言

Not_found とか Division_by_zero とかいう例外は,じつは exn型のコンストラクタ。例外コンストラクタと呼ぶ。

コンストラクタの型を見ると

# Division_by_zero;;
- : exn = Division_by_zero

exn型であることがわかる。同様に raise の型も。

# raise;;
- : exn -> 'a = <fun>

exn型には後からコンストラクタを追加することができる。これが新しい例外を宣言することに相当し,exception宣言を使う。

# exception Other_exception;;
exception Other_exception
# Other_exception;;
- : exn = Other_exception

引数をとる例外の場合は of に続けて引数の型をかけばいい。

# exception Another_exception of string;;
exception Another_exception of string
# Another_exception "some error";;
- : exn = Another_exception "some error"

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください