Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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.