Arma 3 Scripting

Command in Program Flow

catch

Also available as Markdown and JSON, or read the original wiki page.

Description

Processes code when an exception is thrown in a try block. The exception caught can be found in the _exception variable.

Syntax

tryBlock catch code

Parameters:

Returns: Anything

Examples

Example 1

try { throw "invalid argument" } catch {hint str _exception};

Example 2

123 try { if (_this != 123) throw "invalid argument" } catch { hint str _exception };

Example 3

The correct usage of shorthand alt syntax:

try {
    if (a > b) throw "Error: some error"; // OK
    // the command argument is static
} catch {
    hint str _exception;
};

try {
    _someFunc = {
        // ...
    };
    if (a > b) throw (call _someFunc); // NOT OK
    // the command argument is dynamic
    // _someFunc is called first to get the value regardless of (a > b) outcome
} catch {
    hint str _exception;
};

try {
    _someFunc = {
        // ...
    };
    if (a > b) then { throw (call _someFunc) }; /// OK
    // the command argument is dynamic
    // _someFunc is only called when (a > b) is true
} catch {
    hint str _exception;
};

See also

Exception handling · try · throw