Özel Durum Türleri

F# dilinde iki özel durum kategorisi vardır: .NET özel durum türleri ve F# özel durum türleri. Bu konuda F# özel durum türlerinin nasıl tanımlanacağı ve kullanılacağı açıklanmaktadır.

Sözdizimi

exception exception-type of argument-type

Açıklamalar

Önceki söz diziminde, özel durum türü yeni bir F# özel durum türünün adıdır ve bağımsız değişken türü , bu tür bir özel durum oluştururken sağlanacak bağımsız değişkenin türünü temsil eder. Bağımsız değişken türü için bir tanımlama grubu türü kullanarak birden çok bağımsız değişken belirtebilirsiniz.

F# özel durumu için tipik bir tanım aşağıdakine benzer.

exception MyError of string

aşağıdaki gibi işlevini kullanarak raise bu tür bir özel durum oluşturabilirsiniz.

raise (MyError("Error message"))

Aşağıdaki örnekte gösterildiği gibi bir F# özel durum türünü doğrudan bir try...with ifadedeki filtrelerde kullanabilirsiniz.

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# içinde anahtar sözcüğüyle exception tanımladığınız özel durum türü, öğesinden System.Exceptiondevralan yeni bir türdür.

Ayrıca bkz.