swift错误处理

1.表示并抛出错误

  • 在 Swift 中,错误用符合Error协议的类型的值来表示
    enum VendingMachineError: Error {
        case invalidSelection                     //选择无效
        case insufficientFunds(coinsNeeded: Int) //金额不足
        case outOfStock                             //缺货
    }
    复制代码
  • swift 枚举,创建一组错误状态,枚举关联值,可以提供错误状态额外信息,遇见错误的时候,可以抛出异常,使用throw

  • throw VendingMachineError. insufficientFunds(coinsNeeded: 5)

2.处理错误

  • swift 中有4中错误处理方法:

  • 可以讲函数抛出的异常,传递给调用函数的代码

  • 使用do-cantch 语句处理错误

  • 讲错误当作可选项处理

  • 断言此处不会出现错误

3.用 throwing 函数传递错误

  • 在函数声明参数列表之后加上throw,在箭头(->) 前面

  • func canThrowErrors() throws -> String

  • 因为vend(itemNamed:)方法能抛出错误,所以在调用的它时候在它前面加了try关键字。

4.用 Do-Catch 处理错误

  • 如果在do子句中的代码抛出了一个错误,这个错误会与catch子句做匹配,从而决定哪条子句能处理它。

5.将错误转换成可选值 try?

  • 如果someThrowingFunction()抛出一个错误,x和y的值是nil。否则x和y的值就是该函数的返回值

6.禁用错误传递

  • 有时你知道某个throwing函数实际上在运行时是不会抛出错误的,在这种情况下,你可以在表达式前面写try!

7.指定清理操作

  • 可以使用defer语句在即将离开当前代码块时执行一系列语句。该语句让你能执行一些必要的清理工作,不管是以何种方式离开当前代码块的——无论是由于抛出错误而离开,还是由于诸如return或者break的语句

  • 上面的代码使用一条defer语句来确保open(:)函数有一个相应的对close(:)函数的调用。

转载于:https://juejin.im/post/5b8f9716f265da0ae504ebcd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值