예외 형식(F#)
F#의 예외에는 .NET 예외 형식과 F# 예외 형식이라는 두 가지 범주가 있습니다. 이 항목에서는 F# 예외 형식을 정의하고 사용하는 방법을 설명합니다.
exception exception-type of argument-type
설명
위 구문에서 exception-type은 새 F# 예외 형식의 이름이고, argument-type은 이 형식의 예외가 발생할 때 제공할 수 있는 인수의 형식을 나타냅니다. argument-type에 대해 튜플 형식을 사용하여 여러 개의 인수를 지정할 수 있습니다.
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 키워드를 사용하여 정의하는 예외 형식은 Exception에서 상속되는 새 형식입니다.