首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby:“gets”执行过期Timeout.timeout错误

Ruby:“gets”执行过期Timeout.timeout错误
EN

Stack Overflow用户
提问于 2016-04-28 09:03:34
回答 1查看 2.1K关注 0票数 0

在使用Ruby探索Timeout模块时,我构建了一个非常简单的本网站为指南程序。

代码语言:javascript
复制
print "\nEnter Input:"

require 'timeout'
Timeout::timeout(5) do
    input = gets.chomp
end

print "\nEXITING\n"

当我运行这个脚本时,它会提示用户输入,但是在5秒后,它不是简单地打印“退出”并按照逻辑应该立即终止,而是崩溃,返回错误:

'gets': execution expired (Timeout::Error)

我想知道这是为什么,以及如何避免这个错误,而脚本等待用户输入5秒,然后终止。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-04-28 09:05:52

请参阅模块超时的文档

它清楚地指出,它在块中执行操作,如果完成的时间超过秒秒,则会引发错误。

要获得所需的输出,可以使用一个rescue块来拯救Timeout::Error,然后显示您的EXITING消息:

代码语言:javascript
复制
require 'timeout'

print "\nEnter Input:"
begin
  Timeout::timeout(5) do
    input = gets.chomp
  end
rescue Timeout::Error => e
  print "\nEXITING\n"
end
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36909982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档