2012-02-14 2 views
1

У меня есть файл cfm ColdFusion, который обменивается данными с базой данных сервера sql. Прямо сейчас, если что-то пойдет не так с соединением с базой данных, оно вызывает страницу с ошибкой, создаваемую ColdFusion. Есть ли способ, которым я могу поймать ошибки и отобразить сообщение типа «Сервер базы данных временно, пожалуйста, вернитесь позже»? TedОшибки базы данных ошибок в ColdFusion

+2

Поскольку вы сейчас используете этот великий язык .. снова «ColdFusion» является одним словом, а не два;) – Leigh

ответ

6

Вы можете использовать try/catch для индивидуального запроса - это будет наиболее гранулированный подход.

<cftry> 

    <cfquery datasource="myDSN">BROKEN SQL</cfquery> 

    <cfcatch type="database"> 
    <h1>Database Offline!</h1> 
    <p>Sorry, the database threw an error: #cfcatch.queryError#. Try again later.</p><cfabort> 
    </cfcatch> 

</cftry> 

Вы можете также использовать cferror тег для глобальной обработки (положить это в Application.cfm) исключение:

<cferror 
    type="exception" 
    exception="database" 
    template="myFriendlyDatabaseErrorTemplate.cfm"> 

Вы можете также использовать метод OnError в Application.cfc, который также будет (например, cferror тег) поймать все ошибки, которые возникают во время запроса:

<cffunction name="onError" returnType="void"> 
    <cfargument name="Exception" required=true/> 
    <cfargument name="EventName" type="String" required=true/> 
    <cfif arguments.Exception IS "database"> 
     <cfinclude template="myFriendlyDatabaseErrorTemplate.cfm"> 
    </cfif> 
</cffunction> 
+0

Привет, Спасибо за помощь ! –