Skip to main content
Ben Nadel
On User Experience (UX) Design, JavaScript, ColdFusion, Node.js, Life, and Love.

Exception Types In CFCatch Blocks Do Not Have To Be Quoted

By Ben Nadel on
Tags: ColdFusion

This is a really minor post, but this morning, I made a small syntax discovery regarding ColdFusion's CFTry / CFCatch statements - the error types do not have to be quoted. This is true even if the type contains a dot-delimited hierarchy. Here's a quick example:

<cfscript>

	try {

		throw( type = "Foo" );

	} catch ( "Foo" error ) {

		writeOutput( "Caught Quoted: #error.type# <br />" );

	}

	try {

		throw( type = "Foo.Bar" );

	} catch ( "Foo.Bar" error ) {

		writeOutput( "Caught Quoted: #error.type# <br />" );

	}


	// ------------------------------------------------------ //
	// Type value not quoted in CFCatch.
	// ------------------------------------------------------ //


	try {

		throw( type = "Foo" );

	} catch ( Foo error ) {

		writeOutput( "Caught Unquoted: #error.type# <br />" );

	}

	try {

		throw( type = "Foo.Bar" );

	} catch ( Foo.Bar error ) {

		writeOutput( "Caught Unquoted: #error.type# <br />" );

	}

</cfscript>

Notice that the type in the Catch block is only quoted in the first two Try/Catch statements, but not in the second two. When we run the above code, we get the following output:

Caught Quoted: Foo
Caught Quoted: Foo.Bar
Caught Unquoted: Foo
Caught Unquoted: Foo.Bar

All catch blocks worked as expected. Pretty cool!



Reader Comments