Q:

Coldfusion: How does the cfcatch.ErrNumber work?

How does ColdFusion assign an error number/value to cfcatch.ErrNumber?  I know I have to place it within a cftry/cfcatch tags.  When an error is caught, I can use cfcatch.message or cfcatch.detail to see what happened but if I try to access cfcatch.ErrNumber, I get an error.  How do you implement it?  CFDOCS were of no use.  
Not a big deal, just wondering.
<cftry>
<cfquery name='somequery' datasource='dsn'>
    select foo1, foo2, foo3
    from footable XXX
</cfquery>
<cfcatch type='any'>
    <cfoutput>#cfcatch.message#</cfquery>
</cftry>

The snippet above would come back and say something about table not found since I added the XXX after the table name.  Where would cfcatch.ErrNumber come into play here?

A:

You aren't seeing it because errNumber is only a valid attribute of cfcatch when the error is of type "expression".  From the docs:

cfcatch.ErrNumber
  Applies to type = "expression". Internal expression error number.

So you would have to change your code to something like this:
<cftry>
<cfquery name='somequery' datasource='dsn'>
    select foo1, foo2, foo3
    from footable XXX
</cfquery>
    <cfcatch type='expression'>
        <cfoutput>#cfcatch.errNumber#</cfoutput>
    </cfcatch>
    <cfcatch type='any'>
    <cfoutput>#cfcatch.message#</cfoutput>
    </cfcatch>
</cftry>

