Swift:Errors thrown from here are not handled because the enclosing catch is not exhaustive
来源:互联网 发布:ios 电量优化 编辑:程序博客网 时间:2024/06/06 09:09
在学习 Swift 错误处理的时候,官方给出的 do-catch
例子如下:
......let favoriteSnacks = [ "Alice": "Chips", "Bob": "Licorice", "Eve": "Pretzels",]func buyFavoriteSnack(person: String, vendingMachine: VendingMachine) throws { let snackName = favoriteSnacks[person] ?? "Candy Bar" try vendingMachine.vend(itemNamed: snackName)}var vendingMachine = VendingMachine()vendingMachine.coinsDeposited = 8do { try buyFavoriteSnack(person: "Alice", vendingMachine: vendingMachine)} catch VendingMachineError.invalidSelection { print("Invalid Selection.")} catch VendingMachineError.outOfStock { print("Out of Stock.")} catch VendingMachineError.insufficientFunds(let coinsNeeded) { print("Insufficient funds. Please insert an additional \(coinsNeeded) coins.")}// Prints "Insufficient funds. Please insert an additional 2 coins."
但是亲自上手敲代码的时候,却总是在 “do” 闭包中 try
语句上报错:
“Errors thrown from here are not handled because the enclosing catch is not exhaustive”
大体意思是说这个 do-catch
是不完整的。这时候需要再加上一个空的 catch
语句用于关闭 catch。
do { try buyFavoriteSnack(person: "Alice", vendingMachine: vendingMachine)} catch VendingMachineError.invalidSelection { print("Invalid Selection.")} catch VendingMachineError.outOfStock { print("Out of Stock.")} catch VendingMachineError.insufficientFunds(let coinsNeeded) { print("Insufficient funds. Please insert an additional \(coinsNeeded) coins.")} catch { // 加入一个空的catch,用于关闭catch。否则会报错:Errors thrown from here are not handled because the enclosing catch is not exhaustive}
0 0
- Swift:Errors thrown from here are not handled because the enclosing catch is not exhaustive
- Swift:Call can throw, but it is not marked with 'try' and the error is not handled
- Swift Call can throw, but it is not marked with 'try' and the error is not handled
- the error was not handled
- swift编码出现Call can throw, but it is not marked with 'try' and the error is not handled错误的解决
- Call can throw, but it is not marked with 'try' and the error is not handled
- "is not fixed because of errors" 表索引问题处理
- Unreachable catch block for IOException. This exception is never thrown from the try statement body
- Unreachable catch block for SQLException. This exception is never thrown from the try statement body
- the behavior of the UICollectionViewFlowLayout is not defined because:
- 【iOS】The behavior of the UICollectionViewFlowLayout is not defined because:
- The behavior of the UICollectionViewFlowLayout is not defined because 解决办法!
- Form submission canceled because the form is not connected 异常
- Form submission canceled because the form is not connected 解决办法
- Form submission canceled because the form is not connected
- The AssetBundle could not be loaded because it references scripts that are not compatible ...
- class xxx is not an enclosing class
- scrapy异常:http status code is not handled or allowed
- Android 自定义Toast,修改Toast样式和显示时长
- Lua和C++交互详细总结
- 鑫空间关于css3中transform的用法解释
- GCD容易让人迷惑的几个小问题
- stm32的学习之存储器和总线架构
- Swift:Errors thrown from here are not handled because the enclosing catch is not exhaustive
- $.cookie( ) 用法详细解析
- Swift 数组中 Map,FlatMap,Filter,Reduce的使用
- 如何写出兼容性很好的页面
- 从零开始做远控 第六篇 屏幕监控
- BFS(广搜) 细胞问题
- Java 数组基础
- React 生命周期
- 编译时提示`.text' will not fit in region `iram1_0_seg' 解决方式