我正处于重构原型以使其更加灵活的阶段。这意味着我想添加错误处理。我的应用程序非常依赖 String(contentsOf:url) ,与处理文件的任何操作一样,它很容易出错。然而,相关 init 方法的签名只是这样写:
init(contentsOf url: URL) throws
所以我知道它会抛出......但是它具体抛出了什么?当我不知道可能会遇到什么错误时,我不确定我是否理解如何处理错误。这文档也没说什么。我被难住了?
init(contentsOf:)
来自基金会的NSString
API — 因此,像所有 Foundation API 一样,它会抛出一个NSError
其中描述了错误。您可以像捕获其他错误一样捕获它:
do {
let str = String(contentsOf: theLocalURL)
// ...
} catch {
// Present `error.localizedDescription` to the user to let them know what went wrong
}
由于错误是NSError
,你也可以抓住它来检查它code
/userInfo
:
do {
// Same as above
} catch let error as NSError {
// Inspect what went wrong.
}
至于您可能期望哪些特定代码,请查看以NSFile
... 在里面NSError Codes list。常见的代码可能是NSFileReadNoPermissionError
or NSFileReadNoSuchFileError
如果文件不存在等。
不过,一般来说,您应该显示localizedDescription
向您的用户报告错误并中止操作或重试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)