2013-04-10 101 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