rethrow

rethrow([e])

Throw an object without changing the current exception backtrace. The default argument is the current exception (if called within a catch block).

Examples

  1. Rethrow the current exception:

    try
    # Some code that might throw an exception
    catch ex
    # Handle the exception
    rethrow()
    end

    This example demonstrates the use of rethrow() within a catch block to rethrow the current exception without modifying the backtrace.

  2. Rethrow a specific exception:

    try
    # Some code that might throw an exception
    catch ex
    if isa(ex, MyCustomException)
        # Handle specific exception
    else
        # Rethrow the exception
        rethrow(ex)
    end
    end

    In this example, rethrow(ex) is used to rethrow a specific exception that meets certain conditions, while handling other exceptions differently.

  3. Rethrow with a modified backtrace:
    try
    # Some code that might throw an exception
    catch ex
    # Modify the exception or backtrace
    modified_ex = modify_exception(ex)
    modified_ex.backtrace = ...
    rethrow(modified_ex)
    end

    This example demonstrates how rethrow() can be used to rethrow an exception with a modified backtrace or other modified attributes.

Common mistake example:

try
    # Some code that might throw an exception
catch ex
    # Rethrow the exception with a new message
    rethrow("Custom message")
end

In this example, rethrow() is mistakenly used to rethrow an exception with a new message. However, rethrow() does not accept a new message as an argument. To modify the exception message, it is better to create a new exception and throw it using throw().

See Also

User Contributed Notes

Add a Note

The format of note supported is markdown, use triple backtick to start and end a code block.

*Required Field
Details

Checking you are not a robot: