原文:http://coolketang.com/staticCoding/5a99261ed50eee2ea303773f.html
1. 本节课将为你解析异常捕捉语句,该语句主要用于对异常和错误进行监测和处理。同时通过一个食品出售的实例,演示异常捕捉语句的具体用法。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-f25b829a33397be1.png)
2. 首先定义一个Error类型的枚举。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-d9114e3bdb91b9d6.png)
3. 定义第一个枚举成员,表示没有指定的产品。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-9603223f6941a2ef.png)
4. 定义第二个枚举成员,表示缺少钱币而无法购买产品,同时显示缺少金钱的数额。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-8ad62e098af15f85.png)
5. 定义第三个枚举成员,表示货存不足。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-e1269e90cc48c485.png)
6. 接着定义一个指定名称的结构体,表示用于销售的商品。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-81c6c1104c9b8675.png)
7. 给结构体添加两个属性,表示商品的价格和数量。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-2fa12717d0857637.png)
8. 定义一个变量,表示当前硬币的总数。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-1296eb0e08cfbbcb.png)
9. 定义一个类,表示售货商店。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-7d18a094bdff44fa.png)
10. 给类添加一个数组属性,表示该商店拥有的商品种类、价格和数量。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-d63508f9df27ab8d.png)
11. 添加一个名为销售的方法,用来模拟产品销售的动作。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-25761bfab50d0c09.png)
12. 和if-let类似,都是根据其后的表达式的布尔值,决定下一步做什么。只是这样做更加简洁,可以避免过多的嵌套。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-c96ffbe031075e53.png)
13. 通过抛出关键词,抛出异常,即提示错误的具体信息。当需要在函数或者方法里抛出异常,使用throw就可以了。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-55fbf40fd7302a39.png)
14. 判断当商品的价格大于当前硬币总数时,抛出硬币不足的异常。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-3a1694cf2a28798b.png)
15. 当以上异常均未发生时,即可正常进行交易。从硬币总数之中,减去需要购买的商品的价格。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-c388119917f0a322.png)
16. 同时将商品的数量减1。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-e9fe7a03828f13a1.png)
17. 然后同步更新产品数组中的,当前被购买的商品的属性信息。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-8333999c9d172e9e.png)
18. 并在控制台输出当前的商品名称,作为购买的日志。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-c8364a097a39a658.png)
19. 现在我们可以模拟商品的销售操作了。首先创建一所商店。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-8ed04948dc370cdf.png)
20. 异常捕捉语句就是尝试做一件事情,如果失败则捕获出现的错误。这里首先尝试捕捉非法产品的错误。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-e7ebba253445e27e.png)
21. 接着尝试捕捉产品库存不足的错误。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-e2b5a74f83100be3.png)
22. 最后捕捉硬币总数不够的错误。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-19ac535685904fca.png)
23. 接着使用try语句,尝试购买指定名称的商品,然后点击显示调试区图标,打开控制台。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-c460a19ef5733f7b.png)
24. 在控制台可以看出,因为商店中没有销售指定的产品,所以输出了非法商品的错误信息。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-f93c47e0db2c1819.png)
25. 现在将购买的商品名称进行修改,此时在控制台输出了商品被购买的日志信息。点击垂直滚动条,查看上方的内容。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-54fe3a390a148d8b.png)
26. 从第45行右侧的结果可以看出,因为购买了一次布丁,所以当前的硬币总数为8。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-4d417d1c728c120f.png)
27. 当再次购买布丁时,由于硬币总数8,小于布丁价格12,所以控制台输出了硬币不足的错误提示。最后再次点击此图标,关闭控制台,并结束本节课程。
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-3c1bd1d7704dab10.png)
28.
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-e886fbd57fe5c870.png)
![Swift4互动教程](http://upload-images.jianshu.io/upload_images/5981183-88dd6b90cf4e6907.png)
本文整理自:《Swift4互动教程》,真正的
[手把手]教学模式,用最快的速度上手iOS开发和Swift语言,苹果商店App Store免费下载:
https://itunes.apple.com/cn/app/id1320746678
,或扫描本页底部的二维码。课程配套素材下载地址:
资料下载