У меня есть страница, на которой я делаю удаленный запрос к внешнему 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, что делает его невозможным для программного отлова? Есть идеи, как это сделать?
Спасибо....