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

[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

[Source]

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

[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

[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

[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]