On 28.11.2009, at 13:57, Gwynne Raskind wrote: > On Nov 28, 2009, at 4:25 AM, Greg Parker wrote: >> Here's a fun idiom for handling both C++ and Objective-C exceptions in the >> same place (on iPhone and 64-bit Mac). >> >> @try { >> // do stuff >> } @catch (NSException *e) { >> // NSException >> } @catch (id e) { >> // Other Objective-C exception >> } @catch (...) { >> // Non-ObjC exception >> // Decode it by rethrowing it inside a C++ try/catch. >> try { >> @throw; >> } catch (std::bad_cast& e) { >> // C++ failed dynamic cast to reference type >> } catch (...) { >> // Other C++ exception >> // or non-ObjC non-C++ foreign exception >> } >> } > > > I apologize if this is a dense question, but can't you just go like this? > > @try { > // do stuff > } @catch (NSException *e) { > // NSException > } @catch (id e) { > // Other Objective-C exception > } @catch (std::bad_cast& e) { > // C++ failed dynamic cast to reference type > } @catch (...) { > // Other C++ exception > // or non-ObjC non-C++ foreign exception > }
No - there’s a syntactically subtle but important difference above between @try/@catch and try/catch, the further being the Objective-C variant, the later C++. Kai _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com