REXML::ParseException (Class)

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 45
                def context
                        @source.current_line
                end

[Source]

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

[Source]

# File rexml/parseexception.rb, line 37
                def position
                        @source.current_line[0] if @source 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]