다음을 통해 공유


예외 형식

F#에는 .NET 예외 형식 및 F# 예외 형식이라는 두 가지 범주의 예외가 있습니다. 이 항목에서는 F# 예외 형식을 정의하고 사용하는 방법을 설명합니다.

구문

exception exception-type of argument-type

설명

이전 구문 에서 exception-type 은 새 F# 예외 형식의 이름이고 인수 형식 은 이 형식의 예외를 발생시키는 경우 제공할 수 있는 인수의 형식을 나타냅니다. 인수 형식에 튜플 형식을 사용하여 여러 인수를 지정할 수 있습니다.

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#의 키워드(keyword) 사용하여 exception 정의하는 예외 형식은 상속되는 새 형식입니다System.Exception.

참고 항목