關(guān)于網(wǎng)站建設(shè)的通知百度網(wǎng)站流量統(tǒng)計(jì)
程序員的公眾號(hào):源1024,獲取更多資料,無(wú)加密無(wú)套路!
最近整理了一波電子書(shū)籍資料,包含《Effective Java中文版 第2版》《深入JAVA虛擬機(jī)》,《重構(gòu)改善既有代碼設(shè)計(jì)》,《MySQL高性能-第3版》,《Java并發(fā)編程實(shí)戰(zhàn)》等等
獲取方式: 關(guān)注公眾號(hào)并回復(fù) 電子書(shū) 領(lǐng)取,更多內(nèi)容持續(xù)奉上
?
目錄
語(yǔ)法錯(cuò)誤
異常
異常處理
處理形式
拋出異常
自定義異常
系列文章索引
Python有兩種錯(cuò)誤:語(yǔ)法錯(cuò)誤和異常。
語(yǔ)法錯(cuò)誤
while Trueprint('Hello world')
這種錯(cuò)誤,編譯器會(huì)給出提示,按照提示修改即可。
異常
語(yǔ)法正確,但是代碼運(yùn)行時(shí)被檢測(cè)到的錯(cuò)誤。
print('1' + 2)#報(bào)錯(cuò)
TypeError: can only concatenate str (not "int") to str
print(100/0)#報(bào)錯(cuò)
ZeroDivisionError: division by zero
上面代碼都發(fā)生了異常:TypeError異常、ZeroDivisonError異常
異常處理
Python 程序捕捉異常使用 try/except 語(yǔ)句
處理形式
#try/excepttry:...except 異常類(lèi)型:...#try/except...elsetry:...except 異常類(lèi)型:...else:...# try-finallytry:...except 異常類(lèi)型:...else:...finally:...
def testException(n):try:print('try:',100 / n)except ZeroDivisionError:print('except異常邏輯處理。。。')else:print('else 邏輯處理。。。')finally:print('finally 邏輯處理。。。')testException(0)
#輸出
except異常邏輯處理。。。
finally 邏輯處理。。。testException(1)
#輸出
try: 100.0
else 邏輯處理。。。
finally 邏輯處理。。。
else在所有 except 之后使用,沒(méi)有出現(xiàn)異常時(shí)執(zhí)行;
finally 無(wú)論是否出現(xiàn)異常都會(huì)執(zhí)行,最后執(zhí)行。
拋出異常
a = 0
if a == 0:raise Exception('a不能為0')#輸出
Exception: a不能為0
自定義異常
class MyException(Exception):def __init__(self, msg):self.msg = msgdef __str__(self):return repr(self.msg)def test():try:raise MyException('觸發(fā)自定義異常了。。。')except MyException1 as e:print('MyException異常信息:' + e.msg)else:print('不是MyException異常') finally:print('結(jié)束了。') test()
#輸出
MyException異常信息:觸發(fā)自定義異常了。。。
結(jié)束了。
系列文章索引
Python(一)關(guān)鍵字、內(nèi)置函數(shù)
Python(二)基本數(shù)據(jù)類(lèi)型
Python(三)數(shù)據(jù)類(lèi)型轉(zhuǎn)換
Python(四)字符串
Python(五)數(shù)字
Python(六) 列表
Python(七) 條件控制、循環(huán)語(yǔ)句
Python(八) 字典
Python(九) 集合
Python (十) 元組