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

Konrad Grochowski commented on THRIFT-727:
------------------------------------------

Hmmm, it would be exposure if shown to somebody not privileged to see it. I was 
thinking, that this error message would be a good step in learning how to use 
thrift, understanding service etc. How much that information will be finally 
shown to end-user - that's the decision of developer. If it'd be decided to 
show "what" output to public that means application has a very bad design and 
there's nothing Thrift can do about it. It can help develop proper application 
(that catches all errors and provides i18n messages depending on contents of 
exception etc.).
Still I think that such "what" implementation could be useful even in final 
application for logging/tracing (assuming only proper subset of users has read 
access to logs).

> 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,
> {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