【问题标题】:How to rescue an input in class initialization如何在类初始化中挽救输入
【发布时间】:2013-10-22 23:31:46
【问题描述】:

我有一个 Ruby 类,在类的初始化中,用户提供文件路径和文件名,然后类打开文件。

def 文件 def 初始化文件名 @file = File.open(filename, "r").read.downcase.gsub(/[^a-z\s]/,"").split 结尾 定义获取文件 返回@文件 结尾 结尾

但是,问题是用户可以提供一个不存在的文件,如果是这种情况,我需要救援,这样我们就不会向用户显示丑陋的响应。

我的想法是这样的

def 文件 def 初始化文件名 @file = File.open(filename, "r").read.downcase.gsub(/[^a-z\s]/,"").split ||零 结尾 结尾

然后在调用新文件的脚本中我可以做

定义开始 puts "输入文件的来源" 文件名 = 获取 文件 = Files.new 文件名 如果 file.get_file.nil? 开始 别的 #go 对文件做一些事情 结尾 结尾 开始

我认为这是最好的方法的原因是,如果传入的文件很大,我猜最好不要将一大串文本作为变量传递到类中.但这可能不对。

无论如何,我真的想找出处理输入无效文件的最佳方法。

【问题讨论】:

  • 您的代码不会将您从“找不到文件”异常中拯救出来。你试过了吗?

标签: ruby exception


【解决方案1】:
def Files
  def initialize filename
    return unless File.exist?(filename)
    @file = File.read(filename).downcase.gsub(/[^a-z\s]/,"").split
  end
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-18
    • 1970-01-01
    • 2015-05-19
    • 2021-07-30
    相关资源
    最近更新 更多