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