Вы можете найти список в документации для модуля.
Думаю, что это охватывает его:
JSON::JSONError
JSON::GeneratorError
JSON::GenericObject
# The base exception for JSON errors.
JSON::MissingUnicodeSupport
# This exception is raised if the required unicode support is missing on the system. Usually this means that the iconv library is not installed.
JSON::NestingError
# This exception is raised if the nesting of parsed data structures is too deep.
JSON::ParserError
# This exception is raised if a parser error occurs.
JSON::UnparserError
# This exception is raised if a generator or unparser error occurs.
JSON::JSONError
- родительский класс, поэтому Вы можете избавиться от этого и при необходимости предоставить сообщения для каждого класса ошибок.
Мне кажется, стоит отметить, что, по моему опыту, подавляющее большинство ошибок, относящихся к JSON, относится к классу JSON::ParserError
. Другая распространенная проблема, которую стоит рассмотреть, это получение ArgumentError
, если nil
передано в качестве аргумента.
В качестве примера того, как это можно использовать, вы можете работать с чем-то вроде следующего:
begin
JSON.parse(your_json)
rescue JSON::JSONError, ArgumentError => e
{ error: I18n.t(e.to_s) } # <- or whatever you want to do per error
end
Надеюсь, это поможет - дайте мне знать, как вы поживаете:)