# HG changeset patch # User paulo # Date 1438150839 21600 # Node ID 3456dd3e8660cd2dd7ec5e0a0fe44b9e506c3822 # Parent ae0f2f438a95977c9cfd455ed56e80ad45f77e51 myrss: add exception handling around main() diff -r ae0f2f438a95 -r 3456dd3e8660 myrss/myrss_app.py --- a/myrss/myrss_app.py Thu Jun 11 22:03:34 2015 -0700 +++ b/myrss/myrss_app.py Wed Jul 29 00:20:39 2015 -0600 @@ -6,10 +6,11 @@ import Queue import datetime import time +import traceback import logging logging.basicConfig( - level=logging.INFO, + #level=logging.DEBUG, #filename="_LOG", #format="%(asctime)s %(levelname)-8s %(message)s", ) @@ -249,11 +250,20 @@ WorkerThread(input_queue=self._iq, output_queue=self._oq).start() def __call__(self, environ, start_response): - response_body = main(self._iq, self._oq, self._main_lock) + response_code = "500 Internal Server Error" + response_type = "text/plain; charset=UTF-8" + + try: + response_body = main(self._iq, self._oq, self._main_lock) + response_code = "200 OK" + response_type = "text/html; charset=UTF-8" + except: + response_body = traceback.format_exc() + response_headers = [ - ("Content-Type", "text/html; charset=UTF-8"), + ("Content-Type", response_type), ("Content-Length", str(len(response_body))), ] - start_response("200 OK", response_headers) + start_response(response_code, response_headers) return [response_body]