#include <iostream>
using namespace std;
class Exception
{
public:
static void eThrowException(const Exception& error)
{
cout<< error.what() <<endl;
}
virtual const char* what() const;
};
class ThingThatUsesTheExceptions
{
private:
struct HereBeTheError : public Exception { const char* what() const { return "Yarrrrr me matey"; } };
protected:
void cFunctionThatTriggersAnError()
{
Exception::eThrowException(HereBeTheError()); //This is where the error occurs.
}
};
int main() {
// your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjbGFzcyBFeGNlcHRpb24KewpwdWJsaWM6CiAgICBzdGF0aWMgdm9pZCBlVGhyb3dFeGNlcHRpb24oY29uc3QgRXhjZXB0aW9uJiBlcnJvcikKICAgIHsKICAgICAgICBjb3V0PDwgZXJyb3Iud2hhdCgpIDw8ZW5kbDsKICAgIH0KCiAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHdoYXQoKSBjb25zdDsKfTsKCmNsYXNzIFRoaW5nVGhhdFVzZXNUaGVFeGNlcHRpb25zCnsKcHJpdmF0ZToKICAgIHN0cnVjdCBIZXJlQmVUaGVFcnJvciA6IHB1YmxpYyBFeGNlcHRpb24geyBjb25zdCBjaGFyKiB3aGF0KCkgY29uc3QgeyByZXR1cm4gIllhcnJycnIgbWUgbWF0ZXkiOyB9IH07Cgpwcm90ZWN0ZWQ6CiAgICB2b2lkIGNGdW5jdGlvblRoYXRUcmlnZ2Vyc0FuRXJyb3IoKQogICAgewogICAgICAgIEV4Y2VwdGlvbjo6ZVRocm93RXhjZXB0aW9uKEhlcmVCZVRoZUVycm9yKCkpOyAvL1RoaXMgaXMgd2hlcmUgdGhlIGVycm9yIG9jY3Vycy4KICAgIH0KfTsKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglyZXR1cm4gMDsKfQ==