// Broken one, throws NOPE, but still prints U and V
Foo =
{
systemChat _this;
false
};
try
{
if (false) throw ("U" call Foo);
if (false) throw ("V" call Foo);
throw "NOPE";
}
catch
{
systemChat (str _exception);
};
// Throws only "NOPE", like it should. It still evaluates "U" and "V" but that does obviously nothing. Which is probably the reason no one noticed that before
try
{
if (false) throw "U";
if (false) throw "V";
throw "NOPE";
}
catch
{
systemChat (str _exception);
};
// Writes "HELLO" to the systemChat, even though it shouldnt
// This prooves the script engine still evaluates the throw content
// even if not necessary
try
{
if (false) throw (systemChat "HELLO");
}
catch
{
};