6.7 Swift的do-try-catch錯誤處理模式 [Swift教程]

1. 本節(jié)課將為你解析異常捕捉語句豪椿,該語句主要用于對異常和錯誤進(jìn)行監(jiān)測和處理。同時通過一個食品出售的實例,演示異常捕捉語句的具體用法。

2. 首先定義一個Error類型的枚舉。

3. 定義第一個枚舉成員捎迫,表示沒有指定的產(chǎn)品位谋。

4. 定義第二個枚舉成員,表示缺少錢幣而無法購買產(chǎn)品处渣,同時顯示缺少金錢的數(shù)額柑贞。

5. 定義第三個枚舉成員新荤,表示貨存不足。

6. 接著定義一個指定名稱的結(jié)構(gòu)體,表示用于銷售的商品灌危。

7. 給結(jié)構(gòu)體添加兩個屬性盗誊,表示商品的價格和數(shù)量邪财。

8. 定義一個變量,表示當(dāng)前硬幣的總數(shù)展姐。

9. 定義一個類,表示售貨商店妓柜。

10. 給類添加一個數(shù)組屬性鹰服,表示該商店擁有的商品種類嚎于、價格和數(shù)量。

11. 添加一個名為銷售的方法,用來模擬產(chǎn)品銷售的動作。

12. 和if-let類似,都是根據(jù)其后的表達(dá)式的布爾值譬嚣,決定下一步做什么泵督。只是這樣做更加簡潔楣黍,可以避免過多的嵌套匾灶。

13. 通過拋出關(guān)鍵詞,拋出異常租漂,即提示錯誤的具體信息阶女。當(dāng)需要在函數(shù)或者方法里拋出異常,使用throw就可以了哩治。

14. 判斷當(dāng)商品的價格大于當(dāng)前硬幣總數(shù)時张肾,拋出硬幣不足的異常。

15. 當(dāng)以上異常均未發(fā)生時锚扎,即可正常進(jìn)行交易。從硬幣總數(shù)之中馁启,減去需要購買的商品的價格驾孔。

16. 同時將商品的數(shù)量減1。

17. 然后同步更新產(chǎn)品數(shù)組中的惯疙,當(dāng)前被購買的商品的屬性信息翠勉。

18. 并在控制臺輸出當(dāng)前的商品名稱,作為購買的日志霉颠。

19. 現(xiàn)在我們可以模擬商品的銷售操作了对碌。首先創(chuàng)建一所商店。

20. 異常捕捉語句就是嘗試做一件事情蒿偎,如果失敗則捕獲出現(xiàn)的錯誤朽们。這里首先嘗試捕捉非法產(chǎn)品的錯誤。

21. 接著嘗試捕捉產(chǎn)品庫存不足的錯誤诉位。

22. 最后捕捉硬幣總數(shù)不夠的錯誤骑脱。

23. 接著使用try語句,嘗試購買指定名稱的商品苍糠,然后點擊顯示調(diào)試區(qū)圖標(biāo)叁丧,打開控制臺。

24. 在控制臺可以看出岳瞭,因為商店中沒有銷售指定的產(chǎn)品拥娄,所以輸出了非法商品的錯誤信息。

25. 現(xiàn)在將購買的商品名稱進(jìn)行修改瞳筏,此時在控制臺輸出了商品被購買的日志信息稚瘾。點擊垂直滾動條,查看上方的內(nèi)容乏矾。

26. 從第45行右側(cè)的結(jié)果可以看出孟抗,因為購買了一次布丁迁杨,所以當(dāng)前的硬幣總數(shù)為8。

27. 當(dāng)再次購買布丁時凄硼,由于硬幣總數(shù)8铅协,小于布丁價格12,所以控制臺輸出了硬幣不足的錯誤提示摊沉。最后再次點擊此圖標(biāo)狐史,關(guān)閉控制臺,并結(jié)束本節(jié)課程说墨。

本文整理自:《Swift4互動教程》骏全,真正的[手把手]教學(xué)模式,用最快的速度上手iOS開發(fā)和Swift語言尼斧,蘋果商店App Store免費下載:https://itunes.apple.com/cn/app/id1320746678姜贡,或掃描本頁底部的二維碼。課程配套素材下載地址:資料下載

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末棺棵,一起剝皮案震驚了整個濱河市楼咳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌烛恤,老刑警劉巖母怜,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異缚柏,居然都是意外死亡苹熏,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進(jìn)店門币喧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來轨域,“玉大人,你說我怎么就攤上這事粱锐「硗Γ” “怎么了?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵怜浅,是天一觀的道長铐然。 經(jīng)常有香客問我,道長恶座,這世上最難降的妖魔是什么搀暑? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮跨琳,結(jié)果婚禮上自点,老公的妹妹穿的比我還像新娘。我一直安慰自己脉让,他們只是感情好桂敛,可當(dāng)我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布功炮。 她就那樣靜靜地躺著,像睡著了一般术唬。 火紅的嫁衣襯著肌膚如雪薪伏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天粗仓,我揣著相機與錄音嫁怀,去河邊找鬼。 笑死借浊,一個胖子當(dāng)著我的面吹牛塘淑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蚂斤,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼存捺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了曙蒸?” 一聲冷哼從身側(cè)響起召噩,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎逸爵,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體凹嘲,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡师倔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了周蹭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片趋艘。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖凶朗,靈堂內(nèi)的尸體忽然破棺而出瓷胧,到底是詐尸還是另有隱情,我是刑警寧澤棚愤,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布搓萧,位于F島的核電站,受9級特大地震影響宛畦,放射性物質(zhì)發(fā)生泄漏瘸洛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一次和、第九天 我趴在偏房一處隱蔽的房頂上張望反肋。 院中可真熱鬧,春花似錦踏施、人聲如沸石蔗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽养距。三九已至诉探,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間铃在,已是汗流浹背阵具。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留定铜,地道東北人阳液。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像揣炕,于是被迫代替她去往敵國和親帘皿。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內(nèi)容