2014-11-02 72 views
0

当出现异常错误时,Coldfusion将抛出错误。我处理它CFERROR导致浏览器显示Coldfusion源代码

<cferror 
    template = "exception.cfm" 
    type = "exception" 
    mailTo = "[email protected]"> 

这适用于“例外”错误罚款。还有验证错误。但因为我要赶两个我把类型=“请求”这理应抓住两个:

<cferror 
    template = "exception.cfm" 
    type = "request" 
    mailTo = "[email protected]"> 

问题是,当我把TYPE =“请求”和发生异常时,exception.cfm正在显示与所有Coldfusion源代码都显示在浏览器的源代码中查看!它工作正常,如果我把type =“例外”。这很奇怪,我不希望CF代码在浏览器中显示没有遮罩什么,但它确实如此。这是一些CF管理员设置问题或CF9错误?

+1

你已经得到了你的答案,但你的另一个问题是:如果你使用CF9,为什么你仍然使用''而不是Application.cfc的'onError()'? – 2014-11-02 09:16:53

+0

如果只有人能告诉我如何。我对Application.cfc很新,我开始阅读它。我将如何使用我的上述模板编码onError? – Jack 2014-11-02 21:26:30

+1

1)尝试实现某些东西; 2)如果/当你遇到问题时,记录你所做的事情,问题是什么以及你采取了哪些调查步骤。然后在这里提出一个问题与所有信息;-) – 2014-11-02 22:16:10

回答

3

当错误类型为请求时,不能使用CFML标记。这就是为什么您的ColdFusion源代码正在浏览器中显示。但是当错误类型为异常时,可以使用CFML标签,函数。查看documentation了解更多信息。

对于类型请求,您可以使用9个CFML Error变量,如Error.Diagnostics,通过数字标牌#包围他们。要了解更多,请参阅cferror documentation

我希望这可以帮助你。 :)

+0

感谢您的洞察力。我从来没有发现这个阅读CFERROR文件。这很奇怪,为什么要处理任何不同的请求。我的异常页面上有错误诊断信息...只有在请求有效的情况下。 CF的错误处理是非常奇怪的,我不得不说。 – Jack 2014-11-02 21:22:46

+0

*我从来没有发现这个阅读CFERROR文档*当然你会,但有时你必须仔细阅读文档 - 并且不止一次。我记得也是第一次错过它;)我们都犯了这个错误。 – Leigh 2014-11-03 15:20:48

+0

@Leigh当访问者在网站上遇到** Request **错误时,如何在没有CFMAIL的情况下通知我?如果我无法发送自己的邮件,有什么方法可以在某处登录? – Jack 2016-09-12 21:53:53