如何在 Ruby 1.9 和 1.8 中捕获 LoadError 异常?

发布于 2024-11-08 17:36:29 字数 390 浏览 4 评论 0原文

我有一堆需要 ftools 的 Ruby 1.8.x 脚本。

当我在 ruby​​ 1.9 中运行这些脚本时,如何使它们停止抛出异常?

我想保留尽可能多的内容,以便脚本在 1.8 和 1.9 中都能成功运行。我不想安装 RVM 或类似的东西,因为最好只编写尽可能在 1.9 和 1.8 中运行良好的代码。

这是我已经尝试过的:

begin; require  'ftools' rescue LoadError nil end;
begin; require  'fileutils' rescue nil; end;

我怎样才能让它发挥作用。期望的结果是,如果找不到 ftools,则 ruby​​ 会默默地失败,然后继续使用 fileutils。

I have a bunch of Ruby 1.8.x scripts that require ftools.

How can I make these scripts stop throwing exceptions when I run them in ruby 1.9?

I want to preserve as much as possible, so that the scripts run successfully in both 1.8 and 1.9. I do not want to install RVM or something like that because it would be better to just write code that runs fine in both 1.9 and 1.8, to the extent possible.

This is what I have already tried:

begin; require  'ftools' rescue LoadError nil end;
begin; require  'fileutils' rescue nil; end;

How can I get this to work. The desired outcome is for ruby to silently fail if ftools is not found, and then just go on to fileutils instead.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

云淡风轻 2024-11-15 17:36:29

您是否尝试过在救援处理程序中要求您的后备库?

begin
  require 'ftools'
rescue LoadError
  require 'fileutils'
end

Have you tried requiring your fallback library in the rescue handler?

begin
  require 'ftools'
rescue LoadError
  require 'fileutils'
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文