Class Sinatra::ShowExceptions
In: lib/sinatra/showexceptions.rb
Parent: Rack::ShowExceptions

Sinatra::ShowExceptions catches all exceptions raised from the app it wraps. It shows a useful backtrace with the sourcefile and clickable context, the whole Rack environment and the request data.

Be careful when you use this on public-facing sites as it could reveal information helpful to attackers.

Methods

call   new  

Public Class methods

[Source]

    # File lib/sinatra/showexceptions.rb, line 15
15:     def   initializeinitializeinitialize(app)
16:       @app      = app
17:       @template = ERB.new(TEMPLATE)
18:     end

Public Instance methods

[Source]

    # File lib/sinatra/showexceptions.rb, line 20
20:     def call(env)
21:       @app.call(env)
22:     rescue Exception => e
23:       errors, env["rack.errors"] = env["rack.errors"], @@eats_errors
24: 
25:       if respond_to?(:prefers_plain_text?) and prefers_plain_text?(env)
26:         content_type = "text/plain"
27:         body = [dump_exception(e)]
28:       else
29:         content_type = "text/html"
30:         body = pretty(env, e)
31:       end
32: 
33:       env["rack.errors"] = errors
34: 
35:       [500,
36:        {"Content-Type" => content_type,
37:         "Content-Length" => Rack::Utils.bytesize(body.join).to_s},
38:        body]
39:     end

[Validate]