2

在 ruby​​ 中使用 Fileutils 方法时遇到问题

使用时:

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

我得到了预期的错误输出,但我的 ruby​​ 脚本猛烈地结束了。

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

我找到了这个:

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

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

4

1 回答 1

2

您的脚本“暴力结束”,因为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块中你可以处理异常(这里我只是输出错误信息)。

于 2013-07-19T06:47:03.227 回答