【发布时间】:2012-12-02 16:06:47
【问题描述】:
在 Apple 的并发编程指南中,NSOperation 子类示例(非并发和并发变体)使用异常处理,我想知道他们为什么在操作中鼓励这种风格。
清单 2-4 响应取消请求
- (void)main {
@try {
BOOL isDone = NO;
while (![self isCancelled] && !isDone) {
// Do some work and set isDone to YES when finished
}
}
@catch(...) {
// Do not rethrow exceptions.
}
}
我的理解是,异常处理通常不是 Objective-C 代码中的常见做法——异常本质上是程序员错误,应该会导致应用程序崩溃,而意外输入最好由 NSError 处理。 (我可能误解的理解来自this 和this 之类的东西)
我想知道 NSOperations 是否存在异常处理很重要的特定情况,或者这是否是该指南特定作者的首选风格。
附带说明,一些 NSOperation 示例代码遵循这种风格,而其他示例则没有。大多数高可见性 OSS 不使用异常(例如 AFNetworking)。
【问题讨论】:
标签: objective-c exception nsoperation