Bagikan melalui


Jenis Pengecualian

Ada dua kategori pengecualian dalam jenis pengecualian F#: .NET dan jenis pengecualian F#. Topik ini menjelaskan cara menentukan dan menggunakan jenis pengecualian F#.

Sintaksis

exception exception-type of argument-type

Komentar

Dalam sintaks sebelumnya, jenis pengecualian adalah nama jenis pengecualian F# baru, dan jenis argumen mewakili jenis argumen yang dapat disediakan saat Anda menaikkan pengecualian dari jenis ini. Anda dapat menentukan beberapa argumen dengan menggunakan jenis tuple untuk jenis argumen.

Definisi umum untuk pengecualian F# menyerupan berikut ini.

exception MyError of string

Anda dapat menghasilkan pengecualian dari jenis ini dengan menggunakan raise fungsi , sebagai berikut.

raise (MyError("Error message"))

Anda dapat menggunakan jenis pengecualian F# langsung di filter dalam try...with ekspresi, seperti yang diperlihatkan dalam contoh berikut.

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

Jenis pengecualian yang Anda tentukan dengan exception kata kunci di F# adalah jenis baru yang mewarisi dari System.Exception.

Lihat juga