Ruby 2.3.1p112 使用开始时 keyword_rescue 的语法错误

Ruby 2.3.1p112 SyntaxError for keyword_rescue when using begin

我正在编写一个程序来验证 Ruby 中的 CSV 文件,但我似乎没有正确使用 rescue。我确保包含 begin 关键字。我正在使用 ruby 2.3.1p112 (2016-04-26) [x86_64-linux-gnu]

代码在这里:

def self.validate
    begin
      CSV.foreach(@@filepath, headers: true) do |row|
    rescue CSV::MalformedCSVError
      return row
    end
    return -1
end

这可能有些愚蠢,但我不确定是什么,因为我包含了 begin 关键字。

您需要一个 end 用于 do 块,一个用于 rescue 和一个用于 self.validate

如果您使用可以缩进代码的文本编辑器,则很容易发现问题:

def self.validate
  begin
    CSV.foreach(@@filepath, headers: true) do |row|
    rescue CSV::MalformedCSVError
      return row
    end
    return -1
  end

如果你的编辑做不到,找一个更好的! ;)