class MultiJson::ParseError
Raised when JSON parsing fails
Wraps the underlying adapter's parse error with the original input data.
@api public
Attributes
data[R]
The input string that failed to parse
@api public @return [String, nil] the original input data @example
error.data #=> "{invalid json}"
Public Class Methods
build(original_exception, data)
click to toggle source
Build a ParseError from an original exception
@api public @param original_exception [Exception] the adapter's parse error @param data [String] the input that failed to parse @return [ParseError] new error with formatted message @example
ParseError.build(JSON::ParserError.new("..."), "{bad json}")
# File lib/multi_json/parse_error.rb, line 39 def self.build(original_exception, data) new(original_exception.message, data: data, cause: original_exception) end
new(message = nil, data: nil, cause: nil)
click to toggle source
Create a new ParseError
@api public @param message [String, nil] error message @param data [String, nil] the input that failed to parse @param cause [Exception, nil] the original exception @return [ParseError] new error instance @example
ParseError.new("unexpected token", data: "{invalid}", cause: err)
Calls superclass method
# File lib/multi_json/parse_error.rb, line 25 def initialize(message = nil, data: nil, cause: nil) super(message) @data = data set_backtrace(cause.backtrace) if cause end