我试图从一个"require"中解救出来:没有这样的文件可以按顺序加载到ruby中

begin
  require 'someFile.rb'
rescue
  puts "someFile.rb was not found, have you"
  puts "forgotten to specify the -I flag?"
  exit
end

我原以为在someFile.rb号案件没有找到的情况下,rescue号零件将接管执行,但我的假设是错误的.

推荐答案

rescue没有争论只能挽救StandardError秒.LoadError(由未找到的文件引发)不是StandardError而是ScriptError(参见http://blog.nicksieger.com/articles/2006/09/06/rubys-exception-hierarchy).因此,正如MBO所指出的,你必须明确地拯救LoadError.

Ruby相关问答推荐

从同名方法调用 ruby​​ 中的方法

这是一个很好的测试?规范

什么是 '?-mix' 在 Ruby 正则表达式中

为什么 Range 在下降时不起作用?

如何在 VIM 中导航 Ruby 方法?

class_eval <<-"end_eval", __FILE__, __LINE__ 在 Ruby 中是什么意思?

如何在控制台中禁用 MongoDB 日志(log)消息?

Sinatra 是多线程的吗?

如何在Ruby中获取终端窗口的宽度

为什么在 ruby​​ / rails / activerecord 中并不总是需要 self ?

从 Ruby 中的字符串创建不区分大小写的正则表达式

Ruby数组限制方法

Ruby RVM apt-get 更新错误

Ruby 中的标准文件命名约定

在 Ruby 中计算中位数

野外的好黄瓜例子?

如果公司使用 C++、C# 或 Java 作为应用程序语言,为什么要学习 Perl、Python、Ruby?

如何使用 Ruby 的 self 关键字

我更改存储库 URL 后 Capistrano 部署失败

Ruby:如何将数组数组连接成一个