Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Trouble with C++ exceptions, code



On Monday, July 28, 2003, at 02:47 AM, Bjvrn Giesler wrote:

void uncaughtHandler(void)
{
try {
printf("Re-throwing.\n");
throw;
} catch(MyException& e) {
printf("MyException\n");
abort();
} catch(...) {
printf("Unknown\n");
abort();
}
}
...
int main(int argc, char **argv)
{
std::set_terminate(uncaughtHandler);
return myFunction();
}

You shouldn't do this. The C++ standard says (18.6.3.1, paragraph 2) that a terminate handler "shall terminate execution of the program without returning to the caller". The implementation relies on this function meeting this requirement. Your uncaughtHandler doesn't satisfy it.

--Matt
_______________________________________________
darwin-development mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/darwin-development
Do not post admin requests to the list. They will be ignored.

References: 
 >Trouble with C++ exceptions, code (From: Björn Giesler <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.