如何处理来自Fileutils cd的错误

时间:2013-07-19 06:38:40

标签: ruby methods fileutils

我在ruby中使用Fileutils方法时遇到麻烦

使用时:

FileUtils.cd("A/non/existing/directory") 

我按预期得到错误输出,但我的红宝石脚本剧烈结束。

问题是当我尝试访问某个时,如何防止我的ruby脚本停止 不存在的目录?

我发现了这个:

FileUtils.cd('/', :verbose => true)   # chdir and report it

但它不起作用,或者至少我不知道语法是如何工作的!

1 个答案:

答案 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块中,您可以处理异常(这里我只输出错误消息)。