Hi,

I tried raising error in the middle of web output (req.write()) and
Invenio silently dies, there is no error message

it is because inside webinterface_handlerer_wsgi.py, line 334 is this

        except Exception:
            register_exception(req=req, alert_admin=True)
            req.headers_out['content-type'] = 'text/html'
            start_response(req.get_wsgi_status(),
req.get_low_level_headers(), sys.exc_info())
            return generate_error_page(req)


This will fail, because headers and part of the page was already sent.

Shall I catch the error in my module and display an error message, or
is it something systematic that error handler should take care of? In
my opinion yes, probably like

try:
   req.headers_out['content-type'] = 'text/html'
   start_response(req.get_wsgi_status(), req.get_low_level_headers(),
sys.exc_info())
except:
   pass
return generate_error_page(req)

thanks,

roman

Reply via email to