如何从特定错误中解救(Ruby on Rails)
How to rescue from a specific error (Ruby on Rails)
我有一个特定的错误要解决;
从控制台抓取的错误是...
JSON::ParserError: 751: unexpected token at ''
begin
#do stuff
rescue
if error is <JSON::ParserError: 751: unexpected token at ''>
#do stuff
next
end
end
你可以通过名字来救援,像这样:
begin
# ...
rescue JSON::ParserError
# ...
end
如果你想通过多个错误类来挽救,你可以用逗号分隔它们
您可以捕获不同的错误并对它们执行相同的操作或执行不同的操作。语法如下。
假设您想针对不同的错误执行不同的操作:
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
营救。我知道我的回答对于你的问题可能有点过于宽泛,但我希望它能帮助你和其他有类似疑问的人。
我有一个特定的错误要解决;
从控制台抓取的错误是...
JSON::ParserError: 751: unexpected token at ''
begin
#do stuff
rescue
if error is <JSON::ParserError: 751: unexpected token at ''>
#do stuff
next
end
end
你可以通过名字来救援,像这样:
begin
# ...
rescue JSON::ParserError
# ...
end
如果你想通过多个错误类来挽救,你可以用逗号分隔它们
您可以捕获不同的错误并对它们执行相同的操作或执行不同的操作。语法如下。
假设您想针对不同的错误执行不同的操作:
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
营救。我知道我的回答对于你的问题可能有点过于宽泛,但我希望它能帮助你和其他有类似疑问的人。