Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Существует две категории исключений в F#: типы исключений .NET и типы исключений F#. В этом разделе описывается определение и использование типов исключений F#.
Синтаксис
exception exception-type of argument-type
Замечания
В предыдущем синтаксисе тип исключения — это имя нового типа исключения F#, а тип аргумента представляет тип аргумента, который можно указать при возникновении исключения этого типа. Можно указать несколько аргументов с помощью типа кортежа для типа аргумента.
Обычное определение исключения F# напоминает следующее.
exception MyError of string
Вы можете создать исключение этого типа с помощью raise функции, как показано ниже.
raise (MyError("Error message"))
Тип исключения F# можно использовать непосредственно в фильтрах в try...with выражении, как показано в следующем примере.
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
Тип исключения, который определяется ключевым exception словом в F#, — это новый тип, наследующий от System.Exception.
См. также
- обработка исключений
-
Исключения:
raiseфункция - Иерархия Исключений