【问题标题】:How to handle errors from Fileutils cd如何处理来自 Fileutils cd 的错误
【发布时间】:2013-07-19 06:38:39
【问题描述】:

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

使用时:

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

我按预期得到错误输出,但我的 ruby​​ 脚本突然结束。

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

我发现了这个:

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

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

【问题讨论】:

  • 为什么要捕获异常,在救援您还想执行什么操作时。

标签: ruby methods fileutils


【解决方案1】:

您的脚本“暴力结束”,因为FileUtils.cd 在目录不存在时抛出异常。因为你的脚本没有处理异常,所以它退出了。

像这样将您的代码包装在begin-rescue-block 中以处理异常:

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 块中你可以处理异常(这里我只是输出错误信息)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    • 2019-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多