#include <iostream>
using std::cout; using std::endl;
#include <stdexcept>
using std::invalid_argument;
#define N_VALID "is not a valid ID"
void function_throws()
{
throw invalid_argument(N_VALID);
}
int main()
{
try
{
function_throws();
}
catch(const invalid_argument& ex)
{
cout << "invalid_argument: " << ex.what() << endl;
}
catch(const char *message)
{
cout << "const char*: " << message << endl;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBzdGQ6OmNvdXQ7IHVzaW5nIHN0ZDo6ZW5kbDsKI2luY2x1ZGUgPHN0ZGV4Y2VwdD4KdXNpbmcgc3RkOjppbnZhbGlkX2FyZ3VtZW50OwoKI2RlZmluZSBOX1ZBTElEICJpcyBub3QgYSB2YWxpZCBJRCIKCnZvaWQgZnVuY3Rpb25fdGhyb3dzKCkKewogIHRocm93IGludmFsaWRfYXJndW1lbnQoTl9WQUxJRCk7Cn0KCmludCBtYWluKCkKewogICAgdHJ5CiAgICB7CiAgICAgICAgZnVuY3Rpb25fdGhyb3dzKCk7CiAgICB9CiAgICBjYXRjaChjb25zdCBpbnZhbGlkX2FyZ3VtZW50JiBleCkKICAgIHsKICAgICAgICBjb3V0IDw8ICJpbnZhbGlkX2FyZ3VtZW50OiAiIDw8IGV4LndoYXQoKSA8PCBlbmRsOwogICAgfQogICAgY2F0Y2goY29uc3QgY2hhciAqbWVzc2FnZSkKICAgIHsKICAgICAgICBjb3V0IDw8ICJjb25zdCBjaGFyKjogIiA8PCBtZXNzYWdlIDw8IGVuZGw7CiAgICB9Cn0K