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

James E. King, III commented on THRIFT-727:
-------------------------------------------

Are you saying that if I change the name of the variable, it does not break 
backwards compatibility based on the simple fact that the variables are 
enumerated, i.e. if I change {{1:string what}} to {{1:string message}}, if a 
new server fills in {{message}} an older client can retrieve it through the 
older {{what}} accessor that it has?   If that's the case, cool...

> support native C++ language specific exception message
> ------------------------------------------------------
>
>                 Key: THRIFT-727
>                 URL: https://issues.apache.org/jira/browse/THRIFT-727
>             Project: Thrift
>          Issue Type: Improvement
>          Components: C++ - Compiler
>    Affects Versions: 0.2
>         Environment: all
>            Reporter: Ping Li
>            Assignee: Anna Dymek
>            Priority: Minor
>             Fix For: 0.9.3
>
>         Attachments: THRIFT-727-AddOn-Fix-GoTutorial-broken.patch
>
>
> The current exception implement requires the error message to be declared and 
> referenced explicitly, especially when it's sent from server to the client. 
> On client side, this error message cannot be accessed via a native API like 
> exception::what() in C++.
> Example,
> {code}
> exception MyException {
>   1: i32   code;
>   2: string message;
> }
> {code}
> On client side, it can only be accessed like this,
> {code}
> try {
>   server->someMethod();
> } catch (MyException &e) {
>   cout << "MyException: " << e.message << endl;     // this will print the 
> exception message
>   cout << "MyException: " << e.what() << endl;      // this will print 
> TException::Default
> }
> {code}
> At the same time, if TException::message_ is initialized, exception::what() 
> does work when the exception is caught locally.
> It's a little confusing when to use the native method, and when to use Thrift 
> exception message data member.
> It'll be really nice if all exception messages can be accessed the same way 
> thru the navtive language on client side.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to