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

Yuxuan Wang commented on THRIFT-5792:
-------------------------------------

go's reflection is not that inefficient (unlike java), the implementation of 
ExtractExceptionFromResult is just O(N) with N being the number of exceptions 
defined on the endpoint, which is usually a very small number.

The method you proposed will likely not be really trivial to implement, and it 
involves a lot of compiler changes to change the generated go code. If you 
already have an implementation, please open the PR for review.

> Generate a method for retrieving IDL exceptions in Go without using reflection
> ------------------------------------------------------------------------------
>
>                 Key: THRIFT-5792
>                 URL: https://issues.apache.org/jira/browse/THRIFT-5792
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Go - Compiler
>            Reporter: Long Bui
>            Priority: Trivial
>
> Currently, the only way to retrieve IDL exceptions in Go is by using 
> [ExtractExceptionFromResult|https://github.com/apache/thrift/blob/1405831722ac0e1e1ba100801bf21073a0d17940/lib/go/thrift/exception.go#L141],
>  and as you can see, this method uses reflection to traverse through all 
> fields. This is not an effective approach when the Result structure is large.
> Therefore, I propose adding an *Exception() error* method to the generated 
> *Result* structure for retrieving IDL exceptions in an efficient way.



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

Reply via email to