8. Exception Handling

Exception handling is a crucial aspect of any programming language, including Magnolia Groovy Script. In this tutorial, we will explore the fundamentals of handling exceptions in Magnolia Groovy Script, covering various use cases and providing examples to guide you in effectively managing errors in your scripts.

Handling Basic Exceptions

In Magnolia Groovy Script, you can handle exceptions using the try-catch block. Here's an example of how to catch and handle a basic exception:

try {
    // Code that may throw an exception
    def result = 10 / 0
    println("Result: $result")
} catch (Exception e) {
    // Handle the exception
    println("An error occurred: ${e.message}")
}

[Tip: You can catch specific types of exceptions by replacing Exception with the desired exception type, such as ArithmeticException for division by zero errors]

Handling Multiple Exceptions

You can handle multiple exceptions by adding multiple catch blocks. Here's an example:

try {
    def arr = [1, 2, 3]
    println(arr[-4])
} catch (ArrayIndexOutOfBoundsException e) {
    println("Array index out of bounds: ${e.message}")
} catch (Exception e) {
    println("An error occurred: ${e.message}")
}

In this example, we catch both specific and generic exceptions.

[Tip: Place catch blocks in order from the most specific to the most general exception.]

Finally Block

The finally block is used to execute code whether an exception occurs or not. Here's an example:

try {
    def result = 10 / 2
    println("Result: $result")
} catch (ArithmeticException e) {
    println("Arithmetic exception: ${e.message}")
} finally {
    println("This block always executes.")
}

[Tip: Use the finally block for resource cleanup like closing files or database connections.]