Base Exceptions

A base exception class is defined as the super class for all external exceptions. Specific exceptions always inherit from the base exception. To enable you, the Object API developer, to write a standard exception handler, all external exceptions have an error code and a single error message. Furthermore, the exception may contain another exception as the cause.

/*!
 @class SUPBaseException
 @abstract  This class contains information about the exception, error code and error messages. 
 @discussion
 */
@interface SUPBaseException : NSException {
    NSArray*        _arguments;
    int             _errorCode;
    NSException*    _cause;  
}   


// the error code property
@property(readwrite, assign, nonatomic) int errorCode;

// the root exception
@property(readwrite, retain, nonatomic) NSException* cause;

// localized error message
@property(readwrite, copy, nonatomic) NSString* message;

...

/*!
 @method messageWithLocale
 @abstract get the error message using the locale specified
 @result the localized message
 @discussion
 */
- (NSString *)messageWithLocale:(NSString *)locale;

@end;

You can use the message and messageWithLocale(String locale)  methods to retrieve an error message for a specified locale. message is the NSString* message property and messageWithLocale is the messageWithLocale:NSString* locale method.

@try 
{
// …
}
@catch (SUPBaseException *e) 
{
NSString* errorMessage = e.message;
NSString* errorMessageSpanish = [e messageWithLocale:@"es"];
}