Class | REXML::ParseException
In: | rexml/parseexception.rb
Parent: | RuntimeError

### Methods

context line new position to_s

### Attributes

continued_exception | [RW] |
parser | [RW] |
source | [RW] |

### Public Class methods

new( message, source=nil, parser=nil, exception=nil )

[Source]

    # File rexml/parseexception.rb, line 5
        def initialize( message, source=nil, parser=nil, exception=nil )
          super(message)
          @source = source
          @parser = parser
          @continued_exception = exception
        end

### Public Instance methods

context()

[Source]

    # File rexml/parseexception.rb, line 47
        def context
          @source.current_line
        end

line()

[Source]

    # File rexml/parseexception.rb, line 42
        def line
          @source.current_line[2] if @source and defined? @source.current_line and
          @source.current_line
        end

position()

[Source]

    # File rexml/parseexception.rb, line 37
        def position
          @source.current_line[0] if @source and defined? @source.current_line and
          @source.current_line
        end

to_s()

[Source]

    # File rexml/parseexception.rb, line 12
        def to_s
          # Quote the original exception, if there was one
          if @continued_exception
            err = @continued_exception.inspect
            err << "\n"
            err << @continued_exception.backtrace.join("\n")
            err << "\n...\n"
          else
            err = ""
          end

          # Get the stack trace and error message
          err << super

          # Add contextual information
          if @source
            err << "\nLine: #{line}\n"
            err << "Position: #{position}\n"
            err << "Last 80 unconsumed characters:\n"
            err << @source.buffer[0..80].gsub(/\n/, ' ')
          end

          err
        end

[Validate]