objective-c - [NSData writeToFile : atomically] throw an exception when error happens?]

标签 objective-c multithreading

我正在尝试在多线程中调用 [NSData writeToFile:atomically]。

[myLock lock];
[myData writeToFile:aPath atomically:YES];
[myLock unlock];

但是如果writeToFile抛出异常,则不会调用[myLock解锁]。那么,我应该像这样使用 try-cache 吗?

@try
{
    [myLock lock];
    [myData writeToFile:aPath atomically:YES];
}
@catch (NSException *exception) {
    // deal with the exception
}
@finally {
    [myLock unlock];
}

更新: 将“自动”更改为“原子”

最佳答案

它不会抛出任何异常(文档中也没有提到这一点)。如果您担心处理错误,请使用其他 API:

- writeToFile:options:error:

关于objective-c - [NSData writeToFile : atomically] throw an exception when error happens?],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32355989/

相关文章:

objective-c - Objective C 属性变量和非属性变量的存储

c++ - std::thread 没有按预期立即启动 (c++11)

java - 将 Await、Signal、SignalAll 替换为 wait、notify 和 notifyAll

ios - 从 StoryBoard 到 AppDelegate 引用 UITabBarController 的步骤

objective-c - NSMenuItem setTitle 与列

objective-c - 无法关闭窗口 - 为什么?

iOS触摸事件由其他 View 的移动触发

java - Java中方法、对象、类的同步

Python队列在获取下一个项目之前等待线程

java - Docx4j 库不是线程安全的。解决此问题的可能方法有哪些?