例外の種類 (F#)

F# には、.NET の例外の種類および F# の例外の種類という 2 つのカテゴリの例外があります。このトピックでは、F# の例外の種類の定義方法と使用方法について説明します。

exception exception-type of argument-type

解説

前の構文では、exception-type は新しい F# の例外の種類の名前であり、argument-type は、この種類の例外を発生させるときに指定できる引数の型を表します。argument-type にタプル型を使用することで、複数の引数を指定できます。

F# の例外の一般的な定義は、次のとおりです。

exception MyError of string

次のように、raise 関数を使用することで、この種類の例外を生成できます。

raise (MyError("Error message"))

次の例に示すように、try...with 式のフィルターで F# の例外の種類を直接使用できます。

exception Error1 of string
// Using a tuple type as the argument type.
exception Error2 of string * int

let function1 x y =
   try
      if x = y then raise (Error1("x"))
      else raise (Error2("x", 10))
   with
      | Error1(str) -> printfn "Error1 %s" str
      | Error2(str, i) -> printfn "Error2 %s %d" str i

function1 10 10
function1 9 2

F# の exception キーワードを使用して定義する例外の種類は、Exception を継承する新しい型です。

参照

関連項目

例外: raise 関数 (F#)

概念

例外階層

その他の技術情報

例外処理 (F#)