#include <iostream>
#include <memory>
class LoggingLibrary
{
public:
LoggingLibrary(int trigger=0) // for demonstration purposes
{
if ( trigger > 0)
throw "Error";
}
};
using namespace std;
int main()
{
unique_ptr<LoggingLibrary> logLib;
try
{
logLib = make_unique<LoggingLibrary>(0);
}
catch(const char *msg)
{
cout << "Didn't initialize";
}
if ( logLib )
{
cout << "Hey I'm ok"; // no exception thrown
}
}
ICAgICNpbmNsdWRlIDxpb3N0cmVhbT4KICAgICNpbmNsdWRlIDxtZW1vcnk+CiAgICAKICAgIGNsYXNzIExvZ2dpbmdMaWJyYXJ5CiAgICB7CiAgICAJcHVibGljOgogICAgCQlMb2dnaW5nTGlicmFyeShpbnQgdHJpZ2dlcj0wKSAvLyBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlcwogICAgICAgICAgICB7IAogICAgICAgICAgICAgICBpZiAoIHRyaWdnZXIgPiAwKQogICAgICAgICAgICAgICAgICAgdGhyb3cgIkVycm9yIjsgCiAgICAgICAgICAgIH0KICAgIH07CiAgICAKICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAgICAKICAgIGludCBtYWluKCkgCiAgICB7CiAgICAJdW5pcXVlX3B0cjxMb2dnaW5nTGlicmFyeT4gbG9nTGliOwogICAgCXRyeSAKICAgIAl7CiAgICAJCWxvZ0xpYiA9IG1ha2VfdW5pcXVlPExvZ2dpbmdMaWJyYXJ5PigwKTsKICAgIAl9CiAgICAJY2F0Y2goY29uc3QgY2hhciAqbXNnKQogICAgCXsKICAgIAkJY291dCA8PCAiRGlkbid0IGluaXRpYWxpemUiOwogICAgCX0KICAgCSAgICBpZiAoIGxvZ0xpYiApCiAgICAJewogICAgICAgICAgICBjb3V0IDw8ICJIZXkgSSdtIG9rIjsgLy8gbm8gZXhjZXB0aW9uIHRocm93bgogICAgIAl9CiAgICB9Cgo=