f-sharp
  1. f-sharp-user-defined-exception

F# Exception Handling User Defined Exception

F# provides the ability to define your own exceptions for handling errors in your application. In this page, we will discuss how to create and use user-defined exceptions in F#.

Syntax

To create a user-defined exception in F#, you use the exception keyword followed by the name of the exception. You can also inherit from the built-in System.Exception class for more advanced exception handling.

Here's the syntax for creating a user-defined exception:

exception [accessibility-modifier] exception-name [of exception-argument-list] [when type-test-expression] = 
    new [accessibility-modifier] (exception-argument-list) :> System.Exception

Example

Here's an example of how to create and use a user-defined exception in F#:

exception TooSmall of int

let checkValue value =
    if value < 10 then
        raise (TooSmall value)
    else
        printfn "%d is greater than 10!" value

let main() =
    try
        checkValue 5
    with
        | TooSmall value -> printfn "Error: %d is too small." value
        | ex -> printfn "Error: %s" ex.Message

main()

Output

When you run the program, it raises the TooSmall exception because 5 is less than 10. The output will be:

Error: 5 is too small.

Explanation

In this example, we defined a custom exception using the exception keyword. We created the TooSmall exception that takes an integer argument.

We used the checkValue function to determine whether the supplied value is less than 10. If the value is less than 10, then we raise the TooSmall exception.

The main function contains the exception handling logic. We have a try block that calls the checkValue function, which might raise an exception. If an exception is raised, then it's caught by the with block, and we check whether it's a TooSmall exception by pattern matching.

Use

Creating custom exceptions allows you to provide more detailed and informative error messages to your users. By raising a custom exception, you can provide an error message that is specific to the situation that caused the exception.

Important Points

  • You can create user-defined exceptions using the exception keyword.
  • You can inherit from the built-in System.Exception class for more advanced exception handling.
  • By raising a custom exception, you can provide an error message that is specific to the situation that caused the exception.

Summary

In this page, we discussed how to create and use user-defined exceptions in F#. We covered the syntax, example, output, explanation, use, important points, and summary of user-defined exceptions. Using custom exceptions in your F# code can help you to create more informative error handling and improve the user experience of your applications.

Published on: