unknown or irrelevant type } } In C++, a resource acquisition is initialization technique can be used to clean up resources in exceptional situations. C++ intentionally does not support . The outer braces for the method are optional. ColdFusion Markup Language (CFML) Script syntax <cfscript> try { //throw CF9+ throw(type="TypeOfException", message="Oops", detail="xyz"); // alternate throw syntax: throw "Oops"; // this equivalent to the "message" value in the above example } catch (any e) { writeOutput("Error: " & e.message); rethrow; //CF9+ } finally { //CF9+ writeOutput("I run even if no error"); } </cfscript> Adobe ColdFusion documentation Tag syntax <cftry> code that may cause an exception <cfcatch ...> <cftry> First level of exception handling code <cfcatch ...> Second level of exception handling code </cfcatch> <cffinally> final code </cffinally> </cftry> </cfcatch> </cftry> Adobe ColdFusion documentation Railo-Lucee specific syntax Added to the standard syntax above, CFML dialects of Railo and Lucee allow a retry statement. This statement returns processing to the start of the prior try block. CFScript example: try { // code which could result in an exception } catch (any e){ retry; } Tag-syntax example: <cftry> <!--- code which could result in an exception ---> <cfcatch> <cfretry> </cfcatch> </cftry> D import std.stdio; // for writefln() int main() { try { // do something that might throw an exception } catch (FooException e) { // handle exceptions of type FooException } catch (Object o) { // handle any other exceptions writefln("Unhandled exception: ", o); return 1; } return 0; } In D, a clause or the resource acquisition is initialization technique can be used to clean up resources in exceptional situations. Delphi Exception declarations type ECustom = class(Exception) // Exceptions are children of the class Exception. private FCustomData: SomeType; // Exceptions may have custom extensions. public constructor CreateCustom(Data: SomeType); // Needs an implementation property CustomData: SomeType read FCustomData; end; Raising exceptions raise Exception.Create('Message'); raise Exception.CreateFmt('Message with values: %d, %d',[value1, value2]); // See SysUtils.Format() for parameters. raise ECustom.CreateCustom(X); Exception handling and propagation try // For finally. try // For except. ... // Code that may raise an exception. except on C:ECustom do begin ... // Handle ECustom. ... if Predicate(C.CustomData) then ... end; on S:ESomeOtherException do begin // Propagate as an other exception. raise EYetAnotherException.Create(S.Message); end; on E:Exception do begin ... // Handle other exceptions. raise; // Propagate. end; end; finally // Code to execute whether or not an exception is raised (e.g., clean-up