On Mar 20, 2011, at 9:11 PM, Rick Mann wrote: > On Mar 20, 2011, at 12:45 PM, jonat...@mugginsoft.com wrote: >> On 20 Mar 2011, at 19:17, Rick Mann wrote: >>> I have some code, called from a subclass of NSOperation, that throws an >>> exception pretty reliably if I put a breakpoint elsewhere in the code (it >>> is code that does an HTTP request, and it's getting a broken pipe, and >>> raising an exception to report it; the breakpoint (in another thread) seems >>> to trigger this behavior). >>> >>> My NSOperation subclass wraps the call to the network code in a @try/catch >>> block. But when this exception is raised, the app terminates due to an >>> uncaught exception. > > 2011-03-20 18:41:13.233 MissionClock[17979:7e03] *** Terminating app due to > uncaught exception 'NSInvalidArchiveOperationException', reason: 'Network > error domain:NSURLErrorDomain code:-1005' > *** Call stack at first throw: > ( > 0 CoreFoundation 0x015be5a9 > __exceptionPreprocess + 185 > 1 libobjc.A.dylib 0x01712313 objc_exception_throw > + 44 > 2 CoreFoundation 0x01576ef8 +[NSException > raise:format:arguments:] + 136 > 3 CoreFoundation 0x01576e6a +[NSException > raise:format:] + 58 > 4 MissionClock 0x00010920 > -[CWDistantHessianObject(Private) sendRequestWithPostData:] + 426 > 5 MissionClock 0x000115ad > -[CWDistantHessianObject forwardInvocation:] + 77 > 6 CoreFoundation 0x0152fa04 ___forwarding___ + > 1124 > 7 CoreFoundation 0x0152f522 > _CF_forwarding_prep_0 + 50 > 8 MissionClock 0x0001aef8 -[GetMissionListOp > main] + 722 > 9 Foundation 0x00128b76 > -[__NSOperationInternal start] + 747 > 10 Foundation 0x001287ca > ____startOperations_block_invoke_2 + 106 > 11 libdispatch_sim.dylib 0x01bf1289 > _dispatch_call_block_and_release + 16 > 12 libdispatch_sim.dylib 0x01bf458a > _dispatch_worker_thread2 + 252 > 13 libSystem.B.dylib 0x92b46d41 _pthread_wqthread + > 390 > 14 libSystem.B.dylib 0x92b46b86 start_wqthread + 30 > )
You can't currently throw an exception across a forwarded call. When the exception unwinder hits the forwarding frame, it stops and the exception goes uncaught. You'll need to put your exception handler at a different level. -- Greg Parker gpar...@apple.com Runtime Wrangler _______________________________________________ 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