正确处理init中的错误

时间:2014-02-24 02:49:33

标签: objective-c

如何正确处理初始化程序中的错误,该初始化程序在创建过程中执行对象的各种配置?

抛出异常会是吗?如何返回NSError?

1 个答案:

答案 0 :(得分:1)

看到您的init方法最近返回类型id或更近的instancetype,您无法返回NSError *。例外似乎是你的情况的方式。有了这些,你有两个选择。

选择1 抛出异常。在这种情况下,如果您发现出现问题,只需抛出异常。

- (id)init {
    ...
    ...
    if (shouldThrowException) 
        NSException *myException = [NSException new]
        ... populate this exception with details ...
        @throw(myException)
}

选择2 捕获例外情况。在这种情况下,如果您不关心出了什么问题,您可以忽略所引发的任何异常。

- (id)init {
    ...
    ...
    @try {
        // some dangerous thing
    } @catch (NSException *e) {}
}