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

Ping Li updated THRIFT-727:
---------------------------

    Description: 
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,


exception MyException {
  1: i32   code;
  2: string message;
}


On client side, it can only be accessed like this,


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
}


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.

  was:
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,

exception MyException {
  1: i32   code;
  2: string message;
}

On client side, it can only be accessed like this,

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
}

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.


> support native language specific exception message
> --------------------------------------------------
>
>                 Key: THRIFT-727
>                 URL: https://issues.apache.org/jira/browse/THRIFT-727
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (General)
>    Affects Versions: 0.2
>         Environment: all
>            Reporter: Ping Li
>            Priority: Minor
>
> 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,
> exception MyException {
>   1: i32   code;
>   2: string message;
> }
> On client side, it can only be accessed like this,
> 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
> }
> 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 is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to