Robert Brewer avatar Robert Brewer committed a0642c4

Added an HTTPError.get_error_page for easier overriding.

Comments (0)

Files changed (1)

cherrypy/_cperror.py

 from urlparse import urljoin as _urljoin
 from cherrypy.lib import http as _http
 
+
 class CherryPyException(Exception):
     pass
 
 
+class TimeoutError(CherryPyException):
+    """Exception raised when Response.timed_out is detected."""
+    pass
+
+
 class InternalRedirect(CherryPyException):
     """Exception raised to switch to the handler for a different URL.
     
         tb = None
         if cherrypy.request.show_tracebacks:
             tb = format_exc()
-        content = get_error_page(self.status, traceback=tb,
-                                 message=self.message)
+        respheaders['Content-Type'] = "text/html"
+        
+        content = self.get_error_page(self.status, traceback=tb,
+                                      message=self.message)
         response.body = content
         respheaders['Content-Length'] = len(content)
-        respheaders['Content-Type'] = "text/html"
         
         _be_ie_unfriendly(self.status)
     
+    def get_error_page(self, *args, **kwargs):
+        return get_error_page(*args, **kwargs)
+    
     def __call__(self):
         """Use this exception as a request.handler (raise self)."""
         raise self
         HTTPError.__init__(self, 404, "The path %r was not found." % path)
 
 
-class TimeoutError(CherryPyException):
-    """Exception raised when Response.timed_out is detected."""
-    pass
-
-
 _HTTPErrorTemplate = '''<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html>
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.