共用方式為


例外狀況類型

F# 中有兩種例外狀況類別:.NET 例外狀況類型和 F# 例外狀況類型。 本主題描述如何定義和使用 F# 例外狀況類型。

語法

exception exception-type of argument-type

備註

在上一個語法中, exception-type 是新 F# 例外狀況類型的名稱,而 argument-type 代表當您引發此類型例外狀況時可以提供的自變數類型。 您可以使用 自變數類型的 Tuple 類型來指定多個自變數。

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的新類型。

另請參閱