我有一个特定的错误要解决;
从控制台捕获的错误是...
JSON::ParserError: 751: unexpected token at ''
begin
#do stuff
rescue
if error is <JSON::ParserError: 751: unexpected token at ''>
#do stuff
next
end
end
答案 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
营救。我知道我的回答可能对您的问题有点笼统,但我希望它能对您和其他有类似疑问的人有所帮助。