Mario Emmenlauer created THRIFT-4819:
----------------------------------------
Summary: All exceptions are TException
Key: THRIFT-4819
URL: https://issues.apache.org/jira/browse/THRIFT-4819
Project: Thrift
Issue Type: Bug
Components: C++ - Library
Affects Versions: 0.13.0
Reporter: Mario Emmenlauer
In recent versions of thrift we can not exceptions based on their IDL type
anymore. I'm not sure if we broke something, but the code is sufficiently
simple to suggest a but in thrift. So here is what we have:
# A method with signature that can throw a specific exception, i.e.
UserException
# The C++ server throws this exception whenever the method is called
# The C++ client tries to catch this exception but it passes through
The client can catch the exception as `TException` or as `std::exception` and
we can see from the printed message `vException.what()` that its a
`UserException`. But catch does not deduce the type correctly.
Here is the part of the catch that does not work:
try { vClient->SendRequest(); } catch (const
MyService::UserException& vEx) { // TODO why is this not caught????????
std::cerr << "Caught a UserException" << vEx.what() << std::endl; }
catch (const std::exception& vEx) { std::cerr << "Caught a
std::exception, message " << vEx.what() << std::endl; }
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)