updateOrionErrorHandler(_:)

public func updateOrionErrorHandler(
    _ update: (_ previous: @escaping OrionErrorHandler) -> OrionErrorHandler
)

Updates the OrionErrorHandler which is called when Orion encounters a non-recoverable error.

The default error handler is fatalError.

Important

You probably want to implement Tweak.handleError(_:) instead of calling this method. Unlike the Tweak variant, this updates the global error handler (i.e. for all tweaks), and once a failure bubbles up to this method it must terminate the app. A valid use case for calling this method is, for example, a crash reporter that wants to log errors before letting the process crash.

Warning

This function is thread-safe but not reentrant. Do not call updateOrionErrorHandler(_:) or orionError(_:file:line:) inside the update block or the returned error handler.

Example

updateOrionErrorHandler { old in
    return { message, file, line in
        let str = message()
        // save (str, file, line) to a file
        old(str, file, line)
    }
}

Parameters

update

A closure which is passed the previous error handler and returns an updated handler.

previous

The previous error handler. You may want to call this at the end of your error handler closure.