错误处理
错误处理
错误处理 是 CoddyKit 上的免费 Swift Academy 课时。 这是第 1 节课,共 1 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Swift Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Swift Academy 课程共包含 1 节课。
简介
您好,
应用运行时,可能会根据应用代码(逻辑错误等)或应用运行环境的不同而发生一些错误。
可以在识别和控制所发生的错误时使用错误处理。
错误类型
发生错误后,错误处理可以防止应用流程中断、记录错误,或在某些情况下关闭应用(例如无法继续运行时)。
有些错误可能是软件开发人员代码中的逻辑错误导致的。例如,如果我们强制解包上一节中学到的可选值,应用就会抛出错误。
在某些情况下,错误可能与开发人员无关。例如,如果应用运行所在的设备没有磁盘空间,应用同样会发生错误。
自定义错误枚举
我们可以自行使用枚举定义将要发生的自定义错误。在下面的示例中,使用 CreditCardError 这一名称添加了输入信用卡信息时可能发生的错误类型。
enum CreditCardError: Error {
case insufficientFunds
case issuerDeclined
case invalidCVC
}throws 关键字
如果我们编写的方法可能产生错误,就要在该方法的定义中添加 throws 关键字。
下面是语法示例。
func processPayment(creditcard: String) throws {
}throw 关键字
有时,在编写代码时,软件开发人员可能需要抛出错误。
让我们设想一下。我们要为一家银行编写支付系统。
客户使用信用卡付款时,如果余额不足,我们就可以抛出资金不足错误。
throw CreditCardError.insufficientFundsdo-catch 代码块
do-catch 代码块
当我们想要使用可能在应用中引发错误的方法时,可以将这些代码放入 do-catch 代码块中,以捕获可能发生的错误。
可能引发错误的代码位于 do 代码块中,而可能发生的错误会在 catch 错误代码块中被捕获。
让我们来看下面的示例
do {
//Code block that may throw an Error
}
catch let error {
print(error)
}try 语法
除了 try 关键字之外,我们还可以使用 try! 或 try?。
让我们来看一下示例。
// if an error was thrown, app will crash
let result = try! doSomething()
if let result = try? make() {
//If the make method is successful, the result is unwrap. It is a very elegant use.
} else {
//make() threw an error.
}多个 catch 代码块
如果调用的方法可能抛出多个错误,我们可以根据错误类型进行筛选,并引导应用流程。
在下面的示例中,每个 catch 代码块都会处理可能发生的不同错误。
do {
try doSomething()
} catch CustomError.errorOne {
//handle errorOne Error
} catch CustomError.errorTwo(let customErr) {
//handle errorTwo Error with customErr
}恭喜您
恭喜您 🎉
本课中,我们学习了如何使用 Swift 处理应用程序错误。
下一课再见。

常见问题解答
「错误处理」课时是免费的吗?
是的 — 「错误处理」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Swift Academy 课程的其余内容,请升级到 CoddyKit PRO。 Swift Academy 课程共包含 1 节课。
「错误处理」这节课中我会学到什么?
错误处理 你通过在浏览器中直接运行的动手代码来练习 Swift Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Swift Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Swift Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 1 节。
「错误处理」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Swift Academy 课中编写并运行代码吗?
能。每节 Swift Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。