Вот тестовая программка:
int main(int argc, char *argv[]) { ____try ____{ ________int *i = 0; ________cout << *i << endl; ____} ____catch ( ... ) ____{ ________cout << "Exception catched" << endl; ____} }
Если ещё перехватывать сигналы, оказывается, что сигнал SIGSEGV приходит раньше любого исключения. То же самое с SIGABRT. Досадно, что приходится держать два разных механизма перехвата исключительных ситуаций (ведь сигналы, как ни крути, исключительная ситуация). Кто подскажет, где я протупил?