2013-04-10 128 views
4

我只有一些超時異常的處理邏輯。我可以爲cfcatch標籤指定某種類型的標籤嗎?它允許它只捕獲超時? 現在我正在趕上所有例外情況並在cfcatch.message中尋找「時間限制」。它看起來很糟糕。另外,我現在的代碼可以在消息中捕獲一些自定義的異常,但實際上並不是「超時」。僅捕獲超時異常

+0

我可能是錯的,但超時工作的方式是,ColdFusion實際上並沒有拋出錯誤,直到它到達下一個要做的列表。因此,如果您停留在需要8分鐘的查詢中,並且您的超時時間爲1分鐘,那麼直到查詢返回並嘗試接下來的事情,超時纔會啓動。你可以在application.cfc的全局onError中捕獲這個。這就是爲什麼低超時可能不會讓你免於崩潰。 – 2013-04-10 12:52:27

+0

你在尋找什麼樣的時間...是從數據庫還是從其他類型的例程中獲取? – steve 2013-04-10 13:11:31

+0

很多例程,其中包括幾個艱難的查詢,但它真的很重要嗎?我只是想在發生超時時停止處理,並對已經完成的操作做一些記錄。 – AtomicRobot 2013-04-10 13:16:05

回答

5

呃,找到它了。 <cfcatch type="coldfusion.runtime.RequestTimedOutException">完美的作品。我可以發誓我以前曾嘗試過。不知道我錯過了這是否有用。如此愚蠢。

+1

你應該給@Sanjeev這個信用。 – 2013-04-11 12:17:08

+0

是的。他的評論迫使我再次嘗試。 – AtomicRobot 2013-04-11 12:24:46

+0

請注意,您應該在'cfcatch'中添加一個''作爲第一件事情,否則您有可能立即再次超時。 – 2017-05-18 18:25:07