Перехват ошибок базы данных в ColdFusion - PullRequest
1 голос
/ 15 февраля 2012

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

1 Ответ

6 голосов
/ 15 февраля 2012

Вы можете использовать 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>
...