Exception handling: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (corrected mistake)
m (condition corrected)
Line 27: Line 27:
{{Box File|.../fireBomb.sqs|<pre>
{{Box File|.../fireBomb.sqs|<pre>
  _car = _this select 0
  _car = _this select 0
  if (_car emptyPositions "driver") || _car emptyPositions "gunner" || _car emptyPositions "commander" ) then {
  if (crew _car == 0) then {
     throw "vehicle empty"
     throw "vehicle empty"
  } else {
  } else {

Revision as of 20:54, 22 July 2006


In Armed Assault is implemented system of scripting commands which allows your scripts react to lots of kinds of exceptions. Standard construction is:

try {
    //block, that can throw exception
    if (_name == "") then {
        throw "no name"
    } else {
        TitleText [format["Good morning, Captain %1.", _name], "PLAIN DOWN"]
        ~1
        TitleText [_name, "PLAIN DOWN"]
}
catch { //block, that processes an exception if (_exception == "no name") then { echo "Name wasn't entred" TitleText ["And the name isn't", "PLAIN DOWN"] } }


Template:AnswerMe Probably is this possible too:

Template:Box File

try {
    TitleText ["Sgt. Detritus: I get bomb to his car ;-)", "PLAIN DOWN"]
    [jeepOne] exec "fireBomb.sqs"
}
catch { if (_exception == "vehicle empty") then { TitleText ["Sgt. Detritus: He have luck, but next time I'll kill him!", "PLAIN DOWN"] } else { TitleText [format["Sgt. Detritus: Some strange error appears... %1... hmm... another time I'll get him!", _exception], "PLAIN DOWN"] }