# 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

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

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

position()

[Source]

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

line()

[Source]

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

context()

[Source]

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

[Validate]