day13-總結(jié)

異常捕獲

1.異常捕獲

當程序發(fā)生異常的時候,默認情況會程序崩潰,不能接著往后執(zhí)行;捕獲異常就是讓程序發(fā)生異常的時候不崩潰,能夠接著往后執(zhí)行。
一般在明明知道代碼可能會出現(xiàn)異常,但是又不能通過修改代碼去避免, 這個時候就可以通過異常捕獲去處理異常

# age = int(input('請輸入年齡(數(shù)字):'))
# print(age)

2.捕獲異常的語法

1)語法一: 捕獲所有異常
try:
代碼段1
except:
代碼段2
finally:
代碼段f

說明: try, except - 關(guān)鍵字,固定寫法
代碼段1 - 需要捕獲異常的一條或者多條語句
代碼段2 - 出現(xiàn)異常后會執(zhí)行的一條或者多條語句

執(zhí)行過程: 先執(zhí)行代碼段1,如果執(zhí)行代碼段1的時候出現(xiàn)異常,程序不崩潰,直接執(zhí)行代碼段2;
如果代碼段1沒有出現(xiàn)異常,不會執(zhí)行代碼段2

2)語法二:
try:
代碼段1
except 異常類型:
代碼段2
finally:
代碼段f

執(zhí)行過程: 先執(zhí)行代碼段1,如果執(zhí)行代碼段1的時候出現(xiàn)異常,判斷異常類型和except后面的異常類型是否一致,
如果是一致的程序不崩潰,直接執(zhí)行代碼段2;如果不一致,程序直接崩潰
如果代碼段1沒有出現(xiàn)異常,不會執(zhí)行代碼段2

3)語法三:
try:
代碼段1
except (異常類型1, 異常類型2,...):
代碼段2
finally:
代碼段f

執(zhí)行過程: 先執(zhí)行代碼段1,如果執(zhí)行代碼段1的時候出現(xiàn)異常,判斷異常類型和except后面的異常類型是否一致,
如果是一致的程序不崩潰,直接執(zhí)行代碼段2;如果不一致,程序直接崩潰
如果代碼段1沒有出現(xiàn)異常,不會執(zhí)行代碼段2

4)語法四:
try:
代碼段1
except 異常類型1:
代碼段11
except 異常類型2:
代碼段22
except 異常類型3:
代碼段33
...
finally:
代碼段f

3.finally

捕獲異常的最后都可以添加一個finally,finally后面的代碼段f任何時候都會執(zhí)行

  1. try后面的代碼段沒有出現(xiàn)異常,finally會執(zhí)行
  2. try后面的代碼段出現(xiàn)異常被捕獲到,finally會執(zhí)行
  3. try后面的代碼段出現(xiàn)異常沒有被捕獲到,finally會執(zhí)行

4.拋出異常

讓代碼在某種情況下主動奔潰:

raise 異常類型

# 異常捕獲1
try:
    print({'a': 10, 'b': 20}['c'])
    nums = [1, 2, 3]
    print(nums[4])
    print('==========')
except:
    print('出現(xiàn)了異常!')

# 異常捕獲2
print('==========================')
nums = [1, 2, 3]
person = {'name': '小明', 'age': 18, 'gender': '男'}
try:
    print(person['score'])
    print('===')
    print(nums[4])
    print('+++')
except KeyError:
    print('出現(xiàn)鍵錯誤的異常!')


# finally
try:
    print(nums[1])
except KeyError:
    print('出現(xiàn)異常')
finally:
    print('最后寫書')


# raise
# raise KeyError
class AgeError(Exception):
    def __str__(self):
        return '年齡的值應該在0~150'


age = int(input('輸入年齡(0~150):'))
if not 0 < age < 150:
    raise AgeError
```python
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.異常捕獲 當程序發(fā)生異常對的時候,默認情況下程序會崩潰,不能接著往后執(zhí)行;捕獲異常就是讓程序發(fā)生異常的時候不崩...
    SheeranED閱讀 162評論 0 0
  • """author = Zard"""import json 1.review 1.打開文件 - 讀/寫文件...
    Zard泉水閱讀 191評論 0 0
  • 1.異常捕獲 當程序發(fā)生異常的時候,默認情況下會出現(xiàn)崩潰,不能接著往后執(zhí)行;捕獲異常就是讓程序發(fā)生異常的時候不崩潰...
    itachhh閱讀 154評論 0 0
  • 1.異常捕獲 """當程序發(fā)生異常的時候,默認情況會崩潰,不能接著往后執(zhí)行,捕獲異常就是讓程序發(fā)生異常的時候不崩潰...
    太極僧人閱讀 138評論 0 0
  • 異常的捕獲 1.目的 ①當程序發(fā)生異常的時候,默認情況會程序崩潰,不能接著往后執(zhí)行;捕獲異常就是讓程序發(fā)生異常的時...
    逆天胖子閱讀 241評論 0 0

友情鏈接更多精彩內(nèi)容