Coldfusion 当在cfhttp上throwonerror=true时,如何获取cfhttp.filecontent?

Coldfusion 当在cfhttp上throwonerror=true时,如何获取cfhttp.filecontent?,coldfusion,coldfusion-10,cfhttp,Coldfusion,Coldfusion 10,Cfhttp,我使用cfhttp调用REST服务,并将throwonerror属性设置为true。 当我使用try/catch语句捕获错误时,我似乎找不到一种方法来输出REST服务调用试图返回的错误,该错误将驻留在cfhttp.filecontent变量中 我还尝试将结果放入变量中。Coldfusion一直告诉我cfhttp和那个变量不存在。当引发异常时,调用及其结果似乎被抛出门外 我读过一些关于设置throwonerror=false和自己捕获状态码的建议,但这看起来像是愚蠢的工作。有人对此有什么想法吗 &

我使用
cfhttp
调用REST服务,并将
throwonerror
属性设置为true。 当我使用try/catch语句捕获错误时,我似乎找不到一种方法来输出REST服务调用试图返回的错误,该错误将驻留在
cfhttp.filecontent
变量中

我还尝试将结果放入变量中。Coldfusion一直告诉我cfhttp和那个变量不存在。当引发异常时,调用及其结果似乎被抛出门外

我读过一些关于设置
throwonerror=false
和自己捕获状态码的建议,但这看起来像是愚蠢的工作。有人对此有什么想法吗

<cftry>
    <cfhttp url="#restUrl##arguments.method#/#arguments.params#" charset="utf-8" throwonerror="true" result="haha" />
    <cfcatch type="any">
        <cfdump var="#haha#" />
        <cfdump var="#cfcatch#" abort />
    </cfcatch>
</cftry>

更新:
我已经向Adobe提交了一份bug报告,正如Adamn所建议的那样:。我可以确认它在Railo中有效,但在CF10上无效。Adam还可以确认它在CF11上不起作用。

我认为throwonerror=false背后的理论是,即使调用的页面返回500个错误,CF代码仍然成功。你可以检查haha.statusCode,看看发生了什么,并进行相应的处理。我意识到throwonerror可以设置为false,我可以检查statusCode。但当CF执行错误处理时,我会感到更安全,而不是我自己检查状态码,然后手动抛出错误。我真的不明白为什么throwonerror属性不会将cfhttp结果体传递到某个地方的错误结构。cfhttp可以用于访问您的代码或其他人的代码。如果出于封装目的将这两种情况都视为外部调用,那么CFHTTP调用(除非调用标记中存在错误)将是完整的代码,即使被调用的页面被破坏。如果外部页面出错,则抛出错误、陷阱和日志等。如果您正在调用一个中断的服务,那么您的代码并没有中断,您将检查结果并进行相应的处理。对我来说,这确实是一个关注点分离的问题。我认为这是CF中的一个bug(我在CF10和CF11上测试过)。在Railo上,响应仍然从
返回。请提出一个错误:@AdamCameron:谢谢。我可以确认它在CF10上不起作用,但在Railo上起作用。我已经提交了一个bug并更新了我原来的帖子。