【Python】Python中的异常处理
生活随笔
收集整理的這篇文章主要介紹了
【Python】Python中的异常处理
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
常見語法錯誤
- 拼寫錯誤
- 程序不符合Python語法規(guī)范
- 縮進錯誤
異常處理
- try...except...:捕獲單個異常并處理
- try...except...except...:捕獲多個異常并處理
- try...except...else...:捕獲異常并處理,如果沒異常,執(zhí)行else塊語句
- try...except...finally...:捕獲異常并處理,finally塊一定被執(zhí)行(除非被強行中斷)
拋出異常
- raise語句可以拋出異常:
- raise 異常名
- raise 異常名, 附加數(shù)據(jù)
- raise 類名
- assert語句:
- assert<條件測試>, <異常附加數(shù)據(jù)>:斷言為假會拋出AssertionError異常并包含錯誤信息。
內(nèi)置異常類
| AttributeError | 調(diào)用不存在的方法引發(fā)的異常 |
| EOFError | 遇到文件末尾引發(fā)的異常 |
| ImportError | 導(dǎo)入模塊出錯引發(fā)的異常 |
| IndexError | 列表越界引發(fā)的異常 |
| IOError | I/O操作引發(fā)的異常 |
| KeyError | 使用字典中不存在的鍵引發(fā)的異常 |
| NameError | 使用不存在的變量名引發(fā)的異常 |
| TabError | 語句塊縮進不正確引發(fā)的異常 |
| ValueError | 搜索列表中不存在的值引發(fā)的異常 |
| ZeroDivisionError | 除數(shù)為0引發(fā)的異常 |
| FileNotFoundError | 找不到文件引發(fā)的異常 |
談?wù)?except 的捕獲方式
- except:捕獲所有異常
- except<異常名>:捕獲指定異常
- except (異常名1, 異常名2):捕獲異常1或者異常2
- except<異常名> as <數(shù)據(jù)>:捕獲指定異常及其附加的數(shù)據(jù)
- except (異常名1, 異常名2):捕獲指定異常1或者異常2及異常附加的數(shù)據(jù)
Java里面我們也有提及,能不要 catch All 就不要這樣處理。就像這里的except語句,直接catch All,但往往是不合適的。
代碼測試工作
函數(shù)
def grade(sum):""">>> grade(90)'優(yōu)'>>> grade(89)'良'>>> grade(65)'及格'>>> grade(10)'不及格'"""if sum > 100 or sum < 0:print('Error')returnelif sum > 90:return '優(yōu)'elif sum > 80:return '良'elif sum > 70:return '中'elif sum > 60:return '及格'else:return '不及格'if __name__ == '__main__':import doctestdoctest.testmod()單元測試函數(shù)
test1.py
def grade(sum):if sum > 100 or sum < 0:print('Error')returnelif sum > 90:return '優(yōu)'elif sum > 80:return '良'elif sum > 70:return '中'elif sum > 60:return '及格'else:return '不及格'if __name__ == '__main__':import doctestdoctest.testmod()文本文件 test.txt 中保存測試用例:
>>>from test1 import grade >>> grade(90) '優(yōu)' >>> grade(89) '良' >>> grade(65) '及格' >>> grade(10) '不及格'測試語句:
import doctest doctest.testfile('test.txt') 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的【Python】Python中的异常处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 洛谷P1634、P1888、P3954、
- 下一篇: 巧用HashSet装载非重数据(洛谷P2