[OT] Apple introduces Swift as Objective-C sucessor
w0rp via Digitalmars-d
digitalmars-d at puremagic.com
Tue Jun 3 14:09:49 PDT 2014
On Tuesday, 3 June 2014 at 20:26:52 UTC, Jacob Carlborg wrote:
> On 2014-06-03 01:01, deadalnix wrote:
>
>> How do they do error handling ?
>
> Objective-C does support exceptions, but libraries like Cocoa
> avoids throwing exceptions and leave those to the user
> (developer). Instead it usually returns a bool to indicate
> success or failure and then provides an NSError instance via an
> out parameter.
Writing messages which set errors like that was always weird.
// The pointer needs to use __autoreleasing so it captures the
correct
// reference semantics.
- (BOOL) doSomethingWithError:(NSError* __autoreleasing * error) {
// You must set to nil, as Objective C won't initialise to
nil implicitly.
NSError* otherError = nil;
// Pass pointer to object in a C-like way.
[foo doSomethingElseWithError:&otherError];
// We have to check that the out param is not nil.
if (error && otherError) {
*error = otherError;
// We return a boolean flag for those people who
// don't capture the error itself but want a convenient
// if([foo doSomethingWithError:nil] == NO)
return NO;
}
return YES;
}
What does this look like if you use exceptions instead in a saner
language?
void doSomething() {
doSomethingElse();
}
Oh! Right!
More information about the Digitalmars-d
mailing list