Objective-C Mapping for Local Exceptions
On this page:
Mapped Objective-C Interface
A local Slice exception is mapped to an Objective-C interface with the same name. For example:
Slice
["objc:prefix:ICE"] module Ice { local exception InitializationException { ... } }
is mapped to the Objective-C interface ICEInitializationException:
Objective-C
@interface ICEInitializationException : ICELocalException ... @end
Base Interface for Local Exceptions in Objective-C
All mapped Objective-C interfaces derive directly or indirectly from ICELocalException
:
Objective-C
@interface ICELocalException : ICEException { @protected const char* file; int line; } @property(nonatomic, readonly) NSString* file; @property(nonatomic, readonly) int line; -(id)init:(const char*)file line:(int)line; -(id)init:(const char*)file line:(int)line reason:(NSString*)reason; +(id)localException:(const char*)file line:(int)line; @end
Mapping for Local Exception Inheritance in Objective-C
A local Slice exception can extend another Slice exception. In Objective-C, this is mapped to inheritance of the corresponding interfaces. For example:
Slice
module M { local exception ErrorBase {} local exception ResourceError extends ErrorBase {} }
is mapped to:
Objective-C
@interface MErrorBase : ICELocalException -(NSString *) ice_id; +(id) errorBase:(const char*)file line:(int)line; @end @interface MResourceError : MErrorBase -(NSString *) ice_id; +(id) resourceError:(const char*)file line:(int)line; @end