Well, the basic interview with Tigershark on the Radio Check! podcast series I've done has been released recently. During the course of this interview I mentioned the addition of the "Try-Catch" block. I've had a few people ask me already so I'm writing this entry to help give people a little bit more understanding of how this is a big leap for OFP/ArmA scripting.
First, let me explain that I do not know the specifics of this yet. All the information I got was off BI's wiki.
Ok then, the construction of the code itself:
//Script/Function that populates an ammobox with M16 mags
PRIVATE["_quantity","_ammobox"];
_quantity = _this select 0;_ammobox = _this select 1;
As you can see there is a block of code written within the section denoted by the TRY keyword (blue text). This code executes as normal. What determines if the code executes at all is whether or not it throws an EXCEPTION. The term throw is very appropriate as the code halts execution within the TRY block with the exception that (see how the terms start making sense?) it gets diverted to the CATCH blocks (Red text). The reserved variable _exception contains the text string which can be used to determine where the code failed and which CATCH to use.
If the code above should throw an exception at the point where (_quantity == 0) then the appropriate CATCH statement is found and execution resumes at that point. In that case, the text "Zero quantity sent to script" is sent to the screen and the script is exited.
In terms of Armed Assault scripting, this is really just a complex IF-THEN GOTO type system. In more modern and traditional programming languages such as C++,C#,Visual Basic, etc.. an error itself will also throw an exception. Such as code which is handles null values incorrectly. Whether this happens within Armed Assault is yet to be determined. I am hoping in a case above where _ammobox is a null object that it gets a null-exception thrown and doesn't just crash as it may in regular OFP.
In order to grasp the importance of this type of system, one must think about those complex scripts that when they fail... break an entire mission. I've played missions and been the guy responsible for making missions that at some point in the middle of the game just ... fail. If good scripters embrace this system and use it appropriately, a failed script will gracefully exit and allow the mission to continue. Armed Assault missions will not crash and earth will remain balanced....