Arma 3 Scripting

Command in Program Flow

throw

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

Description

Throws an exception. The exception is processed by first catch block. This command will terminate further execution of the code.

Important

Avoid using alternative shorthand syntax if you are planning on preparing your exception information dynamically, as it will have to be generated first regardless of the condition of the if statement before it, as shown in #Example 3.

Syntax

Syntax 1

throw exception

Parameters:

Returns: Nothing

Syntax 2

since arma3 1.54

ifType throw exception

Parameters:

Returns: Nothing

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
{
    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
{
    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 · catch