Swift FileManager会抛出哪些错误?
Swift FileManager会抛出哪些错误?,swift,error-handling,nsfilemanager,foundation,Swift,Error Handling,Nsfilemanager,Foundation,FileManager的方法可以抛出哪些错误?具体地说,我感兴趣的是可以被抛弃的错误 这就是我想使用它的方式: do{ 让inode=try FileManager.default.attributesOfItem(atPath:somePath)[.systemFileNumber] }捕获SomeError.someSpecificError(让someContext){ /*省略了实现*/ } 它可以如下所示(请参阅文档中有关CocoaError的更多文件相关常量) 使用try?它将永远不
FileManager
的方法可以抛出哪些错误?具体地说,我感兴趣的是可以被抛弃的错误
这就是我想使用它的方式:
do{
让inode=try FileManager.default.attributesOfItem(atPath:somePath)[.systemFileNumber]
}捕获SomeError.someSpecificError(让someContext){
/*省略了实现*/
}
它可以如下所示(请参阅文档中有关CocoaError的更多文件相关常量)
使用
try?
它将永远不会抛出任何东西。它将返回可选值,而不是抛出错误。您需要的是使用试试
,然后简单地使用}catch{print(error)}
@LeoDabus感谢您指出这一点。那是个打字错误。我打算写try
而不是try?
谢谢!我读了CocoaError和,但他们没有解释什么是原始值。每个rawValue
背后都有什么意义吗?或者它只是一个用来区分错误的代码?@wowbaggerdhiliquidlunch,在大多数情况下,您不需要rawValue,命名的代码就是所描述的代码,大部分是自描述性的。如果由于任何原因发生了一些未命名的代码,则需要it人员将let error捕捉为NSError
,即通用方式,并从中读取域和代码。
do {
let inode = try FileManager.default.attributesOfItem(atPath: somePath)[.systemFileNumber]
} catch CocoaError.fileNoSuchFile {
print("Error: no such file exists")
} catch CocoaError.fileReadNoPermission {
print("Error: you don't have permissions")
} catch {
// something unknown
}