Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #85799

Re: Assigning a function to sys.excepthook doesn't work in WSGI

References <717f2dd0-7065-4b55-a536-9a40a6c8b291@googlegroups.com>
From Ian Kelly <ian.g.kelly@gmail.com>
Date 2015-02-18 09:51 -0700
Subject Re: Assigning a function to sys.excepthook doesn't work in WSGI
Newsgroups comp.lang.python
Message-ID <mailman.18824.1424278318.18130.python-list@python.org> (permalink)

Show all headers | View raw


On Wed, Feb 18, 2015 at 8:08 AM,  <tak.govoril@gmail.com> wrote:
> I want to generate an html page with http response status '200 OK' in case of an uncaught exception in my wsgi application, instead of web server's standard '500 Internal Server Error' response for such case. To do so, I've made the following sample code:
>
> import sys
>
> def application(environ, start_response):
>     def exception(etype, evalue, trace):
>         start_response('200 OK', [('Content-Type', 'text/plain')])
>         return ['Error']
>
>     sys.excepthook = exception
>
>     1/0
>
>     start_response('200 OK', [('Content-Type', 'text/plain')])
>     return ['OK']
>
> But the function 'exception' is never called, and a standard '500 Internal Server Error' response is still generated by server in case of an uncaught exception.

sys.excepthook is called just before the interpreter exits due to an
exception. In a mod_wsgi environment, having the interpreter exit just
because of an exception would be undesirable. I don't know exactly
what it's doing under the hood, but I would assume that the exception
never makes it to sys.excepthook because the gateway itself is
catching the exception in order to generate the 500 response.

> I looked through the documentation, but unable to find the answer. Are there any ways to handle uncaught by try..except exceptions under mod_wsgi?

Here is what PEP 3333 has to say about error handling:
https://www.python.org/dev/peps/pep-3333/#error-handling

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Assigning a function to sys.excepthook doesn't work in WSGI tak.govoril@gmail.com - 2015-02-18 07:08 -0800
  Re: Assigning a function to sys.excepthook doesn't work in WSGI Ian Kelly <ian.g.kelly@gmail.com> - 2015-02-18 09:51 -0700
    Re: Assigning a function to sys.excepthook doesn't work in WSGI Alexander Sh <tak.govoril@gmail.com> - 2015-02-18 11:16 -0800

csiph-web