在 ruby 中使用 Fileutils 方法时遇到问题
使用时:
FileUtils.cd("A/non/existing/directory")
我得到了预期的错误输出,但我的 ruby 脚本猛烈地结束了。
问题是当我尝试访问不存在的目录时,如何防止我的 ruby 脚本停止?
我找到了这个:
FileUtils.cd('/', :verbose => true) # chdir and report it
但它不起作用,或者至少我不知道语法是如何工作的!
您的脚本“暴力结束”,因为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块中你可以处理异常(这里我只是输出错误信息)。