You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "James E. King, III (JIRA)" <ji...@apache.org> on 2017/11/30 17:39:00 UTC

[jira] [Resolved] (THRIFT-3610) Streamline exception handling in Python server handler

     [ https://issues.apache.org/jira/browse/THRIFT-3610?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

James E. King, III resolved THRIFT-3610.
----------------------------------------
       Resolution: Fixed
    Fix Version/s: 0.11.0

Committed based on successful resubmit.  Thanks.

> Streamline exception handling in Python server handler
> ------------------------------------------------------
>
>                 Key: THRIFT-3610
>                 URL: https://issues.apache.org/jira/browse/THRIFT-3610
>             Project: Thrift
>          Issue Type: Sub-task
>          Components: Python - Compiler
>            Reporter: Aki Sukegawa
>            Assignee: Aki Sukegawa
>            Priority: Minor
>             Fix For: 0.11.0
>
>
> 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)
> {code}
> 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(...)
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)