Skip to main content
Ben Nadel
It's not enough; but, not enough is better than nothing.
Ben Nadel at cf.Objective() 2014 (Bloomington, MN) with: Emily Christiansen and Simon Free and Dave Ferguson and Joel Hill and Dan Wilson and Jeff McDowell and Brian Rinaldi
Ben Nadel at cf.Objective() 2014 (Bloomington, MN) with: Emily Christiansen@egchristiansen ) , Simon Free@simonfree ) , Dave Ferguson@dfgrumpy ) , Joel Hill@Jiggidyuo ) , Dan Wilson@DanWilson ) , Jeff McDowell@jeff_s_mcdowell ) , and Brian Rinaldi@remotesynth )

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