[ 
https://issues.apache.org/jira/browse/THRIFT-5605?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17888477#comment-17888477
 ] 

Jens Geyer commented on THRIFT-5605:
------------------------------------

{code}
// This is a special case, we want to make sure that the middleware don't
// accidentally pull result as error.
exception FooResponse {
}

service ClientMiddlewareExceptionTest {
  FooResponse foo() throws(         // illegal return value
      1: Exception1 error1,
      2: Exception2 error2,
  )
}

{code}

> Go client middleware has no (easy) access to IDL exceptions
> -----------------------------------------------------------
>
>                 Key: THRIFT-5605
>                 URL: https://issues.apache.org/jira/browse/THRIFT-5605
>             Project: Thrift
>          Issue Type: Bug
>          Components: Go - Library
>    Affects Versions: 0.16.0
>            Reporter: Yuxuan Wang
>            Assignee: Yuxuan Wang
>            Priority: Minor
>             Fix For: 0.17.0
>
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> Similar to THRIFT-5527, this is the issue on the client side.
> But unlike THRIFT-5527, this cannot be resolved by a fix on the compiler 
> code. We managed to write a [reflect based helper 
> function|https://github.com/reddit/baseplate.go/blob/e34b108af09beab61f33126dfacf075ff58f5116/thriftbp/client_middlewares.go#L404-L443]
>  to extract the IDL exceptions out of the result TStruct, I think upstream 
> that helper function to be a provided ClientMiddleware would be helpful.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to