From: Kurt B. Kaiser Date: Sat, 22 Mar 2003 19:15:58 +0000 (+0000) Subject: Improve error message handling. X-Git-Tag: v2.3c1~1386 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e51529d79a5b575e648bf5e6eef5324c8fb819ba;p=python Improve error message handling. --- diff --git a/Lib/idlelib/rpc.py b/Lib/idlelib/rpc.py index 615c1f43bb..8bbc2143f1 100644 --- a/Lib/idlelib/rpc.py +++ b/Lib/idlelib/rpc.py @@ -87,13 +87,31 @@ class RPCServer(SocketServer.TCPServer): return self.socket, self.server_address def handle_error(self, request, client_address): - """Override TCPServer method, no error message if exiting""" + """Override TCPServer method + + Error message goes to __stderr__. No error message if exiting + normally or socket raised EOF. Other exceptions not handled in + server code will cause os._exit. + + """ try: raise except SystemExit: raise - else: - TCPServer.handle_error(request, client_address) + except EOFError: + pass + except: + erf = 'sys.__stderr__' + print>>erf, '-'*40 + print>>erf, 'Unhandled server exception!' + print>>erf, 'Thread: %s' % threading.currentThread().getName() + print>>erf, 'Client Address: ', address + print>>erf, 'Request: ', repr(request) + traceback.print_exc(file=erf) + print>>erf, '\n*** Unrecoverable, server exiting!' + print>>erf, '-'*40 + import os + os._exit objecttable = {}