如果响应主体不在JSON中,我如何避免解析JSON,否则会抛出一个我想要处理的巨大异常
def execute_method(foo)
...
response = self.class.get("/foo.php", query: query)
JSON.parse(response.body)
end
答案 0 :(得分:20)
正如@Anthony指出的那样,使用begin / rescue。
begin
...
JSON.parse(response.body)
rescue JSON::ParserError
# Handle error
end
<强>更新
要检查字符串是否是有效的json,您可以创建一个方法:
def valid_json?(string)
!!JSON.parse(string)
rescue JSON::ParserError
false
end
valid_json?("abc") #=> false
valid_json?("{}") #=> true