Details
-
Sub-task
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
None
-
None
Description
It also serves as a reference implementation of THRIFT-3607.
Only needed behavior change was to send catched TApplicationException, rather than opaque TApplicationException(INTERNAL_ERROR).
It now looks like this (comments are not generated)
try: # handler call ... except TTransport.TTransportException: # disconnect raise except Xception as err1: # declared exception msg_type = TMessageType.REPLY result.err1 = err1 except TApplicationException as ex: # send as is logging.exception('TApplication exception in handler') msg_type = TMessageType.EXCEPTION result = ex except Exception: # send INTERNAL_ERROR logging.exception('Unexpected exception in handler') msg_type = TMessageType.EXCEPTION result = TApplicationException(...) result.write(...)