错误处理
表示错误
错误用遵循 Error 协议的类型的值来表示。这个空协议表明该类型可以用于错误处理
Swift 的枚举类型尤为适合构建一组相关的错误状态,枚举的关联值还可以提供错误状态的额外信息
1enum VendingMachineError: Error {
2 case invalid //无效的
3 case insufficient //不足的
4 case outOfStock //缺货的
5}
抛出错误
抛出一个错误可以让你表明有意外情况发生,导致正常的执行流程无法继续执行。抛出错误使用 throw 语句
1throw VendingMachineError.insufficient
throwing 函数 传递错误
一个函数可以通过在声明中添加 throws 关键词来抛出错误消息
一个标有 throws 关键字的函数被称作 throwing 函数
throwing 函数可以在其内部抛出错误,并将错误传递到函数被调用时的作用域
只有 throwing 函数可以传递错误。任何在某个非 throwing 函数内部抛出的错误只能在函数内部处理
1
2func canThrowAnError() throws -> String {
3
4}
Do-Catch 处理错误
用一个 do-catch 语句运行一段闭包代码来处理错误
在 do 子句中的代码抛出了一个错误,这个错误会与 catch 子句做匹配
1do {
2 try canThrowAnError()
3 // 没有错误信息抛出
4} catch {
5 // 有错误信息抛出
6}