我在ruby中使用Fileutils方法时遇到麻烦
使用时:
FileUtils.cd("A/non/existing/directory")
我按预期得到错误输出,但我的红宝石脚本剧烈结束。
问题是当我尝试访问某个时,如何防止我的ruby脚本停止 不存在的目录?
我发现了这个:
FileUtils.cd('/', :verbose => true) # chdir and report it
但它不起作用,或者至少我不知道语法是如何工作的!
答案 0 :(得分:1)
您的脚本“暴力结束”,因为FileUtils.cd
在目录不存在时抛出异常。因为您的脚本不处理异常,所以它会退出。
将代码包含在begin
- rescue
- 这样的块中以处理异常:
require 'fileutils'
begin
FileUtils.cd "A/non/existing/directory"
rescue Errno::ENOENT => e
# do things for appropriate error handling
puts e.message
end
目录更改失败时抛出Errno::ENOENT
异常。在rescue
块中,您可以处理异常(这里我只输出错误消息)。