I've just realized, that a bypass is possible to achieve the goal I need 
without redefining sys.excepthook:

def actual_application(environ, start_response):
    # Real WSGI application goes here
    start_response('200 OK', [('Content-Type', 'text/plain')])
    return ['OK']
def error(environ, start_response):
    # Format a trace and a debug info to send it to a browser here
    start_response('200 OK', [('Content-Type', 'text/plain')])
    return ['Error']
def application(environ, start_response):
    # And the mod_wsgi application hook should consist of the only try...except 
block
    try:
        return actual_application(environ, start_response)
    except:
        return error(environ, start_response)


But the question why I cannot redefine sys.excepthook successfully is still 
unanswered.

On Wednesday, February 18, 2015 at 10:03:48 AM UTC+3, Alexander Sh wrote:
>
>
>
> <http://stackoverflow.com/questions/28570523/handling-exceptions-under-mod-wsgi-assigning-to-sys-excepthook-doesnt-work#>
>  
>   
> 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:
>
> def application(environ, start_response):
>     def exception(etype, evalue, trace):
>         start_response('200 OK', [('Content-Type', 'text/plain')])
>         return ['Error']
>
>     sys.excepthook = exception
>
>     ...
>
>
> 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.
>
> 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?
>

-- 
You received this message because you are subscribed to the Google Groups 
"modwsgi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/modwsgi.
For more options, visit https://groups.google.com/d/optout.

Reply via email to