例外の種類
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
キーワードを使用して定義する例外の種類は、System.Exception
から継承される新しい種類です。
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET