Short answer: no.
Any global object that throws an exception in its constructor will cause an unhandled exception (that is, terminate
be called).
Any class that throws an exception in its destructor is a broken class.
Using the singleton pattern rather than globals will give you more options.