如何正确处理初始化程序中的错误,该初始化程序在创建过程中执行对象的各种配置?
抛出异常会是坏吗?如何返回NSError?
答案 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) {}
}