Exception: MultiJson::ParseError

Inherits:
StandardError
  • Object
show all
Defined in:
lib/multi_json/parse_error.rb

Overview

Raised when JSON parsing fails

Wraps the underlying adapter’s parse error with the original input data.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message = nil, data: nil, cause: nil) ⇒ ParseError

Create a new ParseError

Examples:

ParseError.new("unexpected token", data: "{invalid}", cause: err)


25
26
27
28
29
# 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

Instance Attribute Details

#dataString? (readonly)

The input string that failed to parse

Examples:

error.data  #=> "{invalid json}"


14
15
16
# File 'lib/multi_json/parse_error.rb', line 14

def data
  @data
end

Class Method Details

.build(original_exception, data) ⇒ ParseError

Build a ParseError from an original exception

Examples:

ParseError.build(JSON::ParserError.new("..."), "{bad json}")


39
40
41
# 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