1
0
Fork 0

- One of the most frequent bug reports is about "terminate called after

throwing an instance of 'sg_io_exception'\nAbandon". And this is caused
  by compiling fgfs/sg without exception support (unlikely) or linking
  against a libSDL/libglut that was compiled/linked without execption
  support. While we can't fix that, we can tell the users who's to blame. :-)
- handle  const char *  exceptions
This commit is contained in:
mfranz 2007-05-10 12:50:50 +00:00
parent adcd01d7dc
commit 794f5cc154

View file

@ -144,6 +144,16 @@ void flush_fpe(void)
}
#endif
static void terminate() {
cerr << endl <<
"Uncaught Exception: you should see a meaningful error message\n"
"here, but your GLUT (or SDL) library was apparently compiled\n"
"and/or linked without exception support. Please complain to\n"
"its provider!"
<< endl << endl;
abort();
}
int _bootstrap_OSInit;
// Main entry point; catch any exceptions that have made it this far.
@ -205,6 +215,7 @@ int main ( int argc, char **argv ) {
// FIXME: add other, more specific
// exceptions.
try {
std::set_terminate(terminate);
atexit(fgExitCleanup);
fgMainInit(argc, argv);
} catch (const sg_throwable &t) {
@ -218,6 +229,9 @@ int main ( int argc, char **argv ) {
} catch (const string &s) {
cerr << "Fatal error: " << s << endl;
} catch (const char *s) {
cerr << "Fatal error: " << s << endl;
} catch (...) {
cerr << "Unknown exception in the main loop. Aborting..." << endl;
if (errno)