如何从特定错误中解救(Ruby on Rails)

时间:2018-11-01 22:27:28

标签: ruby-on-rails ruby rescue

我有一个特定的错误要解决;

从控制台捕获的错误是...

JSON::ParserError: 751: unexpected token at ''

begin
    #do stuff
rescue
    if error is <JSON::ParserError: 751: unexpected token at ''>
         #do stuff
         next
    end
end

2 个答案:

答案 0 :(得分:3)

您可以像这样传递名称以进行救援:

begin
  # ...
rescue JSON::ParserError
  # ...
end

如果您想传递多个错误类别以进行救援,则可以用逗号将它们分开

答案 1 :(得分:3)

您可以捕获不同的错误并对它们执行相同的操作或执行不同的操作。语法如下。

假设您要针对不同的错误执行不同的操作:

begin
  # Do something
rescue JSON::ParseError
  # Do something when the error is ParseError
rescue JSON::NestingError, JSON::UnparserError
  # Do something when the error is NestingError or UnparserError
rescue JSON::JSONError => e
  # Do something when the error is JSONError
  # Use the error from this variable `e'
rescue # same as rescue StandardError
  # Do something on other errors
end

如果要将所有代码放置在函数中的begin rescue end块内,则可以省略begin end字,因此无需编写:

def my_func
  begin
    # do someting
  rescue JSON::ParseError
    # handle error
  end
end

你可以写

def my_func
  # do something
rescue JSON::ParseError
  # handle error
end

请记住不要从Exception营救。我知道我的回答可能对您的问题有点笼统,但我希望它能对您和其他有类似疑问的人有所帮助。