2012-02-14 52 views
1

我有一个与sql server数据库通信的ColdFusion cfm文件。现在,如果数据库连接出现问题,它会引发由ColdFusion生成的错误页面。有没有一种方法可以捕获错误并显示一条消息,如“数据库服务器暂时关闭,请稍后再回来”? Ted在ColdFusion中捕获错误数据库错误

+2

既然你现在用这个伟大的语言..再次“ColdFusion的”是一个词,而不是两个;) – Leigh 2012-02-14 21:34:58

回答

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> 

您也可以使用全局异常处理(把这个Application.cfm)的cferror标签:

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

您也可以内的Application.cfc使用onError方法,这也将(如在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

你好,谢谢你的帮助! – 2012-02-27 13:44:19