Re: Exception handling
Re: Exception handling
- Subject: Re: Exception handling
- From: Alex Zavatone <email@hidden>
- Date: Fri, 15 Jun 2018 15:53:08 -0500
Along those lines, here are some approaches we used on iOS to catch exceptions
and to throw exceptions.
- (id)argument {
if (!_argument) {
@throw [NSException exceptionWithName:NSInternalInconsistencyException
reason:@"Argument requested has yet to be captured." userInfo:nil];
if (![HMACData rnc_isEqualInConsistentTime:self.inData]) {
[self cleanupAndNotifyWithError:
[NSError errorWithDomain:kRNCryptorErrorDomain
code:kRNCryptorHMACMismatch
userInfo:[NSDictionary dictionaryWithObject:@"HMAC
Mismatch" /* DNL */
forKey:NSLocalizedDescriptionKey]]];
return;
}
We also set NSSetUncaughtExceptionHandler declared in the appDelegate.
NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);
#pragma mark -
#pragma mark Exception Handler
void uncaughtExceptionHandler(NSException *exception) {
DLog(@"CRASH: %@", exception);
DLog(@"Stack Trace: %@", [exception callStackSymbols]);
// Internal error reporting
}
Hope this helps.
- Alex Zavatone
> On Jun 15, 2018, at 1:30 PM, Jens Alfke <email@hidden> wrote:
>
>
>
>> On Jun 14, 2018, at 5:58 PM, Quincey Morris
>> <email@hidden> wrote:
>>
>> as someone already mentioned, NSExceptions can’t successfully cross
>> dylib/framework boundaries.
>
> They can, actually; there is no problem with this at the ABI/runtime level.
>
> I think what you mean is that most libraries/frameworks don't make guarantees
> about properly handling exceptions thrown into them, i.e. from a call into
> external code. Some C++ libraries do guarantee this (especially libc++), and
> even without guarantees a typical C++ lib using RAII will be relatively safe,
> but Objective-C code usually isn't written to be exception-safe, and C code
> of course can't be.
>
> —Jens
> _______________________________________________
>
> Cocoa-dev mailing list (email@hidden)
>
> 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:
>
> This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden