【发布时间】:2020-06-25 19:33:40
【问题描述】:
我有一个向外部 API 发出远程请求的页面。我有时会在发出请求时遇到请求超时,因此,我计划在 CFHTTP 标记中设置一个低于我的默认 requesttimeout 设置的超时并捕获它。但是,我无法让我的 CFTRY/CFCATCH 捕捉到它。这是我的伪代码:
private void function makeRequest(){
cfhttp(
url="https://api.somesite.com/",
method="POST",
timeout="1",
throwonerror="true",
result="LOCAL.ApiHttpResult"
) {
...
}
}
public void function tryRequest() {
try {
makeRequest();
}
catch(coldfusion.runtime.RequestTimeoutException e) {
abort;
}
}
我从 CFSCRIPT 得到相同的结果:
<cffunction access="public" returntype="void" name="tryRequest">
<cftry>
<cfscript>
makeRequest();
</cfscript>
<cfcatch type="coldfusion.runtime.RequestTimeoutException">
<cfabort />
</cfcatch>
</cffunction>
CFHTTP 超时是否有什么特别之处导致无法以编程方式捕获?关于如何做到这一点的任何想法?
谢谢....
【问题讨论】:
标签: coldfusion try-catch cfml coldfusion-11 timeoutexception