Ruby 捕获for循环中的超时异常
对于目录中的每个文件,我需要对其执行一些操作,然后将结果写入另一个文件。如果引发超时异常,请继续循环的下一次迭代Ruby 捕获for循环中的超时异常,ruby,exception,Ruby,Exception,对于目录中的每个文件,我需要对其执行一些操作,然后将结果写入另一个文件。如果引发超时异常,请继续循环的下一次迭代 require 'timeout' timeout_in_seconds = 60 for fl in Dir.glob('/dir/files') begin Timeout::timeout(timeout_in_seconds) do #do something here to get $results File.open('new_file
require 'timeout'
timeout_in_seconds = 60
for fl in Dir.glob('/dir/files')
begin
Timeout::timeout(timeout_in_seconds) do
#do something here to get $results
File.open('new_file', 'w') { |file| file.write(results) }
end
rescue Timeout::Error
next
end
从shell运行错误为:
syntax error, 'unexpected kRESCUE, expecting kEND
rescue Timeout::Error
关于如何更正此问题,您有什么想法吗?您在上面的代码中遗漏了两个
end
。把它写在下面
require 'timeout'
timeout_in_seconds = 60
for fl in Dir.glob('/dir/files')
begin
Timeout::timeout(timeout_in_seconds) do
#do something here to get $results
File.open('new_file', 'w') { |file| file.write(results) }
end
rescue Timeout::Error
next # although I am not sure why this is needed.
end
end
您在上面的代码中遗漏了两个
end
。把它写在下面
require 'timeout'
timeout_in_seconds = 60
for fl in Dir.glob('/dir/files')
begin
Timeout::timeout(timeout_in_seconds) do
#do something here to get $results
File.open('new_file', 'w') { |file| file.write(results) }
end
rescue Timeout::Error
next # although I am not sure why this is needed.
end
end
rescue
应位于end子句之前
require 'timeout'
timeout_in_seconds = 60
for fl in Dir.glob('/dir/files')
begin
Timeout::timeout(timeout_in_seconds) do
#do something here to get $results
File.open('new_file', 'w') { |file| file.write(results) }
rescue Timeout::Error
end
end
rescue
应位于end子句之前
require 'timeout'
timeout_in_seconds = 60
for fl in Dir.glob('/dir/files')
begin
Timeout::timeout(timeout_in_seconds) do
#do something here to get $results
File.open('new_file', 'w') { |file| file.write(results) }
rescue Timeout::Error
end
end
呃,好吧,否决票是非常有用的。减少摩擦/多余的岗位。也许对这一切最好是圆滑的:-)可能是:-)但这里的人也通过回答来学习,所以无论什么时候出了问题,其他人都应该让他知道,出了什么问题。这可能是一个伟大的教训。。。我想……:)呃,好吧,否决票是非常有用的。减少摩擦/多余的岗位。也许对这一切最好是圆滑的:-)可能是:-)但这里的人也通过回答来学习,所以无论什么时候出了问题,其他人都应该让他知道,出了什么问题。这可能是一个伟大的教训。。。我想……:)