다음을 통해 공유


예외 형식(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에서 상속되는 새 형식입니다.

참고 항목

참조

예외: raise 함수(F#)

개념

예외 계층

기타 리소스

예외 처리(F#)