Swift do-try-catch错误处理语法糖

Swift 的错误语法糖衣do-try-catch,用起来真的挺顺手,尤其适合搞 iOS 开发的朋友。结构清晰,逻辑直观,像文件、发网络求这些容易出错的地方,它能帮你把锅都兜住,不慌。

do 块里的代码可以大胆写,出错就交给catch 块。比如你用Data(contentsOf:)读文件:

do {
  let data = try Data(contentsOf: URL(fileURLWithPath: "path/to/file"))
} catch {
  print("文件读取失败:\(error)")
}

想偷个懒?Swift 还了try?。它不报错,失败时直接给你nil,像这样:

let data = try? Data(contentsOf: URL(fileURLWithPath: "path/to/file"))
if let data = data {
  // 正常
} else {
  // 数据加载失败,淡定
}

多个catch分情况也方便,像抓NSError这种常见错误就常见:

do {
  //...
} catch let error as NSError {
  print("遇到 NSError:\(error.localizedDescription)")
} catch {
  print("发生未知错误")
}

Swift 的 do-try-catch结构蛮贴心,语法糖衣一点也不甜腻,反而让代码更清爽。如果你在一些失败的逻辑,尤其是 I/O 相关的,可以好好利用它,既优雅又实用。

zip
swift-?Swiftdo-try-catch的语法糖衣.zip 预估大小:19个文件
folder
devxoul-Fallback-72e3ea0 文件夹
file
.gitignore 77B
file
Package.swift 71B
file
README.md 1KB
file
Gemfile 86B
folder
Sources 文件夹
file
Fallback.swift 2KB
file
LICENSE 1KB
file
Gemfile.lock 2KB
folder
.bundle 文件夹
file
config 68B
folder
Fallback.xcodeproj 文件夹
folder
project.xcworkspace 文件夹
file
contents.xcworkspacedata 135B
file
project.pbxproj 10KB
folder
xcshareddata 文件夹
folder
xcschemes 文件夹
file
Fallback.xcscheme 3KB
file
xcschememanagement.plist 243B
folder
Configs 文件夹
file
Project.xcconfig 274B
file
Fallback_Info.plist 723B
file
FallbackTests_Info.plist 723B
folder
Tests 文件夹
folder
FallbackTests 文件夹
file
FallbackTests.swift 6KB
file
LinuxMain.swift 98B
file
.travis.yml 783B
file
Fallback.podspec 710B
zip 文件大小:13.18KB