#include <iostream>
#include <string>
using namespace std;
void MightGoWrong()
{
bool error = true;
if (error)
{
throw string("Something else went wrong");
}
}
/**
* Output on console: Int exception occurred: 14947880
*/
int main() {
try
{
MightGoWrong();
}
// If string or char pointer catch block goes to top, that block will execute
catch (int e)
{
cout << "Int exception occurred: " << e << endl;
}
catch (string &e)
{
cout << "String exception occurred: " << e << endl;
}
catch (char const * e)
{
cout << "Char exception occurred: " << e << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgTWlnaHRHb1dyb25nKCkKewogICAgYm9vbCBlcnJvciA9IHRydWU7CiAgICBpZiAoZXJyb3IpCiAgICB7CiAgICAgICAgdGhyb3cgc3RyaW5nKCJTb21ldGhpbmcgZWxzZSB3ZW50IHdyb25nIik7CiAgICB9Cn0KCi8qKgogKiBPdXRwdXQgb24gY29uc29sZTogSW50IGV4Y2VwdGlvbiBvY2N1cnJlZDogMTQ5NDc4ODAKICovCmludCBtYWluKCkgewogICAgdHJ5CiAgICB7CiAgICAgICAgTWlnaHRHb1dyb25nKCk7CiAgICB9CiAgICAvLyBJZiBzdHJpbmcgb3IgY2hhciBwb2ludGVyIGNhdGNoIGJsb2NrIGdvZXMgdG8gdG9wLCB0aGF0IGJsb2NrIHdpbGwgZXhlY3V0ZQogICAgY2F0Y2ggKGludCBlKSAgCiAgICB7CiAgICAgICAgY291dCA8PCAiSW50IGV4Y2VwdGlvbiBvY2N1cnJlZDogIiA8PCBlIDw8IGVuZGw7CiAgICB9CiAgICBjYXRjaCAoc3RyaW5nICZlKQogICAgewogICAgICAgIGNvdXQgPDwgIlN0cmluZyBleGNlcHRpb24gb2NjdXJyZWQ6ICIgPDwgZSA8PCBlbmRsOwogICAgfQogICAgY2F0Y2ggKGNoYXIgY29uc3QgKiBlKQogICAgewogICAgICAgIGNvdXQgPDwgIkNoYXIgZXhjZXB0aW9uIG9jY3VycmVkOiAiIDw8IGUgPDwgZW5kbDsKICAgIH0KICAgIHJldHVybiAwOwp9