【问题标题】:List of NSException derived classes or exception names?NSException 派生类或异常名称的列表?
【发布时间】:2013-09-05 00:57:44
【问题描述】:

我已经通过Introduction to Exception Programming Topics for Cocoa。在Throwing Exceptions 下,显示了一个异常名称:FileNotFoundException

NSException *e = [NSException
    exceptionWithName:@"FileNotFoundException"
               reason:@"File Not Found on System"
             userInfo:nil];

@throw e;

但是,Predefined Exceptions 页面列出了大约 10 个例外,而FileNotFoundException 没有列出。

在哪里可以找到常见或预期的异常和名称列表?

【问题讨论】:

标签: ios macos cocoa-touch cocoa exception


【解决方案1】:

该特定示例中显示的异常FileNotFoundException 不是预定义的异常。所有预定义的异常都以前缀 NS 开头,例如 NSRangeException 等。因此您无法在预定义的异常列表下看到它。

来自Apple docs

请注意,所有预定义的异常都以前缀“NS”开头,因此在创建新的异常名称时应避免使用相同的前缀。

FileNotFoundException 是自定义异常,需要开发者针对自定义错误情况提出并处理。建议所有自定义异常都应避免使用前缀 NS

正如 pfrank 在他的回答中提到的,预定义的异常列表可以是 found here

extern NSString *NSGenericException;
extern NSString *NSRangeException;
extern NSString *NSInvalidArgumentException;
extern NSString *NSInternalInconsistencyException;
extern NSString *NSMallocException;
extern NSString *NSObjectInaccessibleException;
extern NSString *NSObjectNotAvailableException;
extern NSString *NSDestinationInvalidException;
extern NSString *NSPortTimeoutException;
extern NSString *NSInvalidSendPortException;
extern NSString *NSInvalidReceivePortException;
extern NSString *NSPortSendException;
extern NSString *NSPortReceiveException;
extern NSString *NSOldStyleException;

希望有帮助!

【讨论】:

    【解决方案2】:

    这很奇怪,这些是我看到的在 NSExcpetion.h 中定义的唯一常量:

    FOUNDATION_EXPORT NSString * const NSGenericException;
    FOUNDATION_EXPORT NSString * const NSRangeException;
    FOUNDATION_EXPORT NSString * const NSInvalidArgumentException;
    FOUNDATION_EXPORT NSString * const NSInternalInconsistencyException;
    
    FOUNDATION_EXPORT NSString * const NSMallocException;
    
    FOUNDATION_EXPORT NSString * const NSObjectInaccessibleException;
    FOUNDATION_EXPORT NSString * const NSObjectNotAvailableException;
    FOUNDATION_EXPORT NSString * const NSDestinationInvalidException;
    
    FOUNDATION_EXPORT NSString * const NSPortTimeoutException;
    FOUNDATION_EXPORT NSString * const NSInvalidSendPortException;
    FOUNDATION_EXPORT NSString * const NSInvalidReceivePortException;
    FOUNDATION_EXPORT NSString * const NSPortSendException;
    FOUNDATION_EXPORT NSString * const NSPortReceiveException;
    
    FOUNDATION_EXPORT NSString * const NSOldStyleException;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-18
      • 1970-01-01
      • 1970-01-01
      • 2015-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多