Coldfusion: как работает cfcatch.ErrNumber? - PullRequest
0 голосов
/ 02 марта 2012

Как ColdFusion назначает номер / значение ошибки для cfcatch.ErrNumber?Я знаю, что должен поместить его в теги cftry / cfcatch.Когда ошибка обнаружена, я могу использовать cfcatch.message или cfcatch.detail, чтобы увидеть, что произошло, но если я пытаюсь получить доступ к cfcatch.ErrNumber, я получаю ошибку.Как вы это реализуете?CFDOCS были бесполезны.

Ничего страшного, просто интересно.

<cftry>
<cfquery name='somequery' datasource='dsn'>
    select foo1, foo2, foo3
    from footable XXX
</cfquery>
<cfcatch type='any'>
    <cfoutput>#cfcatch.message#</cfquery>
</cftry>

Приведенный выше фрагмент вернется и скажет что-то о таблице, не найденной, поскольку я добавил XXX после имени таблицы.Где бы в игру вступил cfcatch.ErrNumber?

1 Ответ

3 голосов
/ 02 марта 2012

Вы не видите его, потому что errNumber является допустимым атрибутом cfcatch только тогда, когда ошибка имеет тип «выражение».Из документов :

cfcatch.ErrNumber Применяется к type = "expression".Внутренняя ошибка выражения номер.

Так что вам придется изменить свой код на что-то вроде этого:

<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>
...