欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

python異常處理(25)

在python開(kāi)發(fā)中,代碼書(shū)寫(xiě)時(shí)難免有疏忽或者意向不到的bug,導(dǎo)致程序run的過(guò)程中有可能會(huì)直接崩潰;然后對(duì)于程序猿而言,程序因bug崩潰是家常便飯,為了增加程序的健壯性,防止程序崩潰,我們可以對(duì)程序的有可能發(fā)生崩潰的代碼增加異常處理,以達(dá)到程序穩(wěn)健運(yùn)行的目的。

成都創(chuàng)新互聯(lián)專注于彌渡網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供彌渡營(yíng)銷型網(wǎng)站建設(shè),彌渡網(wǎng)站制作、彌渡網(wǎng)頁(yè)設(shè)計(jì)、彌渡網(wǎng)站官網(wǎng)定制、小程序定制開(kāi)發(fā)服務(wù),打造彌渡網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供彌渡網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。

python 異常處理(25)

?

一.異常的概念

一般情況,python無(wú)法正常處理程序時(shí),就是會(huì)產(chǎn)生異常,舉個(gè)例子:

1.大家都知道分母不能為0,如果分母為0,程序必然崩潰;

1

2

3

x=3/0

?

程序崩潰/報(bào)錯(cuò):ZeroDivisionError:divisionbyzero

?

2.假如 python文件讀寫(xiě) 中,我們講解了文件的讀寫(xiě)操作,如果我們對(duì)一個(gè)不存在的文件讀取內(nèi)容,程序必然也會(huì)崩潰;

1

2

3

4

# 讀取123.txt文件,實(shí)際上該文件并不存在

fp=open("123.txt","r")

?

程序崩潰/報(bào)錯(cuò):FileNotFoundError:[Errno2]Nosuchfileordirectory:'123.txt'

?

對(duì)于以上的各種異常情況,我們可以通過(guò)?try…except…解決,那么具體有哪些異常能捕獲呢?如下所示:

1.BaseException?— 所有異常的基類

2.SystemExit?— 解釋器請(qǐng)求退出

3.KeyboardInterrupt?— 用戶中斷執(zhí)行(通常是輸入^C)

4.Exception?— 常規(guī)錯(cuò)誤的基類

5.StopIteration?— 迭代器沒(méi)有更多的值

6.GeneratorExit?— 生成器(generator)發(fā)生異常來(lái)通知退出

7.StandardError?— 所有的內(nèi)建標(biāo)準(zhǔn)異常的基類

8.ArithmeticError?— 所有數(shù)值計(jì)算錯(cuò)誤的基類

9.FloatingPointError?— 浮點(diǎn)計(jì)算錯(cuò)誤

10.OverflowError?— 數(shù)值運(yùn)算超出最大限制

11.ZeroDivisionError?— 除(或取模)零 (所有數(shù)據(jù)類型)

12.AssertionError?— 斷言語(yǔ)句失敗

13.AttributeError?— 對(duì)象沒(méi)有這個(gè)屬性

14.EOFError?— 沒(méi)有內(nèi)建輸入,到達(dá)EOF 標(biāo)記

15.EnvironmentError?— 操作系統(tǒng)錯(cuò)誤的基類

16.IOError?— 輸入/輸出操作失敗

17.OSError?— 操作系統(tǒng)錯(cuò)誤

18.WindowsError?— 系統(tǒng)調(diào)用失敗

19.ImportError?— 導(dǎo)入模塊/對(duì)象失敗

20.LookupError?— 無(wú)效數(shù)據(jù)查詢的基類

21.IndexError?— 列中沒(méi)有此索引(index)

22.KeyError?— 映射中沒(méi)有這個(gè)鍵

23.MemoryError?— 內(nèi)存溢出錯(cuò)誤(對(duì)于Python 解釋器不是致命的)

24.NameError?— 未聲明/初始化對(duì)象 (沒(méi)有屬性)

25.UnboundLocalError?— 訪問(wèn)未初始化的本地變量

26.ReferenceError?— 弱引用(Weak reference)試圖訪問(wèn)已經(jīng)垃圾回收了的對(duì)象

27.RuntimeError?— 一般的運(yùn)行時(shí)錯(cuò)誤

28.NotImplementedError?— 尚未實(shí)現(xiàn)的方法

29.SyntaxError?— Python 語(yǔ)法錯(cuò)誤

30.IndentationError?— 縮進(jìn)錯(cuò)誤

31.TabError?—? Tab 和空格混用

32.SystemError?— 一般的解釋器系統(tǒng)錯(cuò)誤

33.TypeError?— 對(duì)類型無(wú)效的操作

34.ValueError?— 傳入無(wú)效的參數(shù)

35.UnicodeError?— Unicode 相關(guān)的錯(cuò)誤

36.UnicodeDecodeError?— Unicode 解碼時(shí)的錯(cuò)誤

37.UnicodeEncodeError?— Unicode 編碼時(shí)錯(cuò)誤

38.UnicodeTranslateError?— Unicode 轉(zhuǎn)換時(shí)錯(cuò)誤

39.Warning?— 警告的基類

40.DeprecationWarning?— 關(guān)于被棄用的特征的警告

41.FutureWarning?— 關(guān)于構(gòu)造將來(lái)語(yǔ)義會(huì)有改變的警告

42.OverflowWarning?— 舊的關(guān)于自動(dòng)提升為長(zhǎng)整型(long)的警告

43.PendingDeprecationWarning?— 關(guān)于特性將會(huì)被廢棄的警告

44.RuntimeWarning?— 可疑的運(yùn)行時(shí)行為(runtime behavior)的警告

45.SyntaxWarning?— 可疑的語(yǔ)法的警告

46.UserWarning?— 用戶代碼生成的警告

?

python 異常處理(25)

二.捕獲異常方式

1.捕獲所有異常

1

2

3

4

try:

????<代碼>

except:

????print("異常說(shuō)明")

示例代碼:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

# !usr/bin/env python

# -*- coding:utf-8 _*-

"""

@Author:何以解憂

@Blog(個(gè)人博客地址): shuopython.com

@WeChat Official Account(微信公眾號(hào)):猿說(shuō)python

@Github:www.github.com

@File:try_except.py

@Time:2019/10/9 21:27

?

@Motto:不積跬步無(wú)以至千里,不積小流無(wú)以成江海,程序人生的精彩需要堅(jiān)持不懈地積累!

"""

?

try:

????x=3/0# 程序出現(xiàn)異常,不會(huì)繼續(xù)執(zhí)行后面的代碼

????print("hello world")

except:

????print("異常說(shuō)明:分母不能為0")

?

print("程序正常結(jié)束")

輸出結(jié)果:

1

2

異常說(shuō)明:分母不能為0

程序正常結(jié)束

?

2.捕獲指定異常

1

2

3

4

try:

????<語(yǔ)句>

except<異常名>:

????print('異常說(shuō)明')

示例代碼:

1

2

3

4

5

6

7

8

try:

????fp=open("123.txt","r")# 程序出現(xiàn)異常,不會(huì)繼續(xù)執(zhí)行后面的代碼

????print("hello world")

????fp.close()

exceptIOError:

????print("異常說(shuō)明:文件讀取失敗")

?

print("程序正常結(jié)束")

輸出結(jié)果:

1

2

異常說(shuō)明:文件讀取失敗

程序正常結(jié)束

?

3.捕獲多個(gè)異常

1

2

3

4

5

6

7

8

try:

????<語(yǔ)句>

except<異常名1>:

????print('異常說(shuō)明1')

except<異常名2>:

????print('異常說(shuō)明2')

except<異常名3>:

????print('異常說(shuō)明3')

該種異常處理語(yǔ)法的規(guī)則是:

a.執(zhí)行try下的語(yǔ)句,如果引發(fā)異常,則執(zhí)行過(guò)程會(huì)跳到第一個(gè)except語(yǔ)句。

b.如果第一個(gè)except中定義的異常名與引發(fā)的異常匹配,則執(zhí)行該except中的語(yǔ)句。

c.如果引發(fā)的異常不匹配第一個(gè)except,則會(huì)搜索第二個(gè)except,允許編寫(xiě)的except數(shù)量沒(méi)有限制。

d.如果所有的except都不匹配,則異常會(huì)傳遞到下一個(gè)調(diào)用本代碼的最高層try代碼中。

示例代碼:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

try:

????fp=open("123.txt","r")# 程序出現(xiàn)異常,不會(huì)繼續(xù)執(zhí)行后面的代碼

????print("hello world")

????fp.close()

exceptGeneratorExit:

????print("異常說(shuō)明:GeneratorExit")

exceptFloatingPointError:

????print("異常說(shuō)明:FloatingPointError")

exceptOverflowError:

????print("異常說(shuō)明:OverflowError")

exceptZeroDivisionError:

????print("異常說(shuō)明:ZeroDivisionError")

exceptIOError:

????print("異常說(shuō)明:IOError")

?

print("程序正常結(jié)束")

輸出結(jié)果:

1

2

異常說(shuō)明:IOError

程序正常結(jié)束

?

4.萬(wàn)能的異常捕獲

1

2

3

4

try:

????<語(yǔ)句>

exceptExceptionase:# 自動(dòng)識(shí)別異常信息,并將異常信息保存在e中

????print('異常說(shuō)明:',e)

示例代碼:

1

2

3

4

5

6

7

8

try:

????fp=open("python.txt","r")# 程序出現(xiàn)異常,不會(huì)繼續(xù)執(zhí)行后面的代碼

????print("hello world")

????fp.close()

exceptExceptionase:

????print("異常說(shuō)明:",e)

?

print("程序正常結(jié)束")

輸出結(jié)果:

1

2

異常說(shuō)明:[Errno2]Nosuchfileordirectory:'python.txt'

程序正常結(jié)束

?

python 異常處理(25)

?

5.異常中的?else

如果判斷完沒(méi)有異常之后還想做其他事,就可以使用下面這樣的else語(yǔ)句,注意:是在try中沒(méi)有異常情況下,才會(huì)執(zhí)行else之后的代碼。

1

2

3

4

5

6

7

8

try:

????<語(yǔ)句>

except<異常名1>:

????print('異常說(shuō)明1')

except<異常名2>:

????print('異常說(shuō)明2')

else:

????<語(yǔ)句>??# try語(yǔ)句中沒(méi)有異常則執(zhí)行此段代碼

示例代碼:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

try:

????print("hello world")

exceptGeneratorExit:

????print("異常說(shuō)明:GeneratorExit")

exceptFloatingPointError:

????print("異常說(shuō)明:FloatingPointError")

exceptOverflowError:

????print("異常說(shuō)明:OverflowError")

exceptZeroDivisionError:

????print("異常說(shuō)明:ZeroDivisionError")

else:

????print("i love you")

?

print("程序正常結(jié)束")

輸出結(jié)果:

1

2

3

helloworld

iloveyou

程序正常結(jié)束

?

6.異常中的finally

try…finally…語(yǔ)句無(wú)論是否發(fā)生異常都將會(huì)執(zhí)行最后的代碼。

1

2

3

4

try:

????<語(yǔ)句>

finally:

????<語(yǔ)句>

示例代碼:

1

2

3

4

5

6

7

8

9

10

try:

????fp=open("python.txt","r")# 程序出現(xiàn)異常,不會(huì)繼續(xù)執(zhí)行后面的代碼

????print("hello world")

????fp.close()

exceptExceptionase:

????print("異常說(shuō)明:",e)

finally:

????print("finally")# 無(wú)論是否發(fā)生異常都將會(huì)執(zhí)行最后的代碼

?

print("程序正常結(jié)束")

輸出結(jié)果:

1

2

3

異常說(shuō)明:[Errno2]Nosuchfileordirectory:'python.txt'

finally

程序正常結(jié)束

?

7.raise主動(dòng)觸發(fā)異常

可以使用raise語(yǔ)句自己觸發(fā)異常,語(yǔ)法如下:

1

raise[Exception[,args[,traceback]]]

語(yǔ)句中 Exception 是異常的類型(例如,IOError?)參數(shù)標(biāo)準(zhǔn)異常中任一種,args 是自已提供的異常參數(shù)。最后一個(gè)參數(shù)是可選的(在實(shí)踐中很少使用),如果存在,是跟蹤異常對(duì)象;示例代碼如下:

1

2

3

4

5

6

7

try:

????raiseException("raise Exception!")??# 觸發(fā)異常后,后面的代碼就不會(huì)再執(zhí)行

????print("hello world")

exceptExceptionase:

????print(e)

finally:

????print("OK")

輸出結(jié)果:

1

2

raiseException!

OK

python 異常處理(25)

?

四.重點(diǎn)總結(jié)

在python開(kāi)發(fā)中,為了增加程序的健壯性,異常處理try…except…是必須掌握的內(nèi)容.

?

猜你喜歡:

1.python文件讀寫(xiě)操作

2.python內(nèi)置函數(shù)input/eval

?

轉(zhuǎn)載請(qǐng)注明:猿說(shuō)Python???python異常處理

新聞標(biāo)題:python異常處理(25)
文章源于:http://www.aaarwkj.com/article26/jpogcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、動(dòng)態(tài)網(wǎng)站、軟件開(kāi)發(fā)、網(wǎng)站建設(shè)、網(wǎng)站改版網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
婷婷色爱区综合五月激情| 激情综合色综合久久丁香| 国产精品兄妹在线观看91| 亚洲av天堂一区二区香蕉| 青春草草视频在线观看| 蜜桃精品视频在线播放| 女人裸体网站无遮挡午夜| 日本国产美女精品一区二区| 国产成人午夜视频免费一区| 天堂av在线资源观看| 在线观看中文字幕日韩精品| 日韩一二三四区精品电影免费播放| 最新日韩一区二区在线| 国产饥渴熟女在线三区| 国产成人综合久久二区| 高清欧美精品一区二区三区 | 一区二区三区国产欧美日本| 日本特黄特色大片免费| 国产成人大片一区二区三区| 哪里可以看日韩免费毛片| 亚洲一区二区三区四区五区六| 日韩在线观看精品亚洲| 日本一区二区三区高清| 国产av网站精品成人| 日本中文字幕黄色人妻| 日日插天天干夜夜操| 国产福利三级在线观看| 午夜精品四季av日日骚| 国产亚洲一区二区精品| 这里只有精品国产999| 午夜福利中文字幕在线亚洲| 香蕉视频网站欧美一区| 传媒精品视频在线观看| 日韩欧美中文字幕综合网| 国产精品一区二区啪啪| 毛片91成人在线播放| 久久久久久亚洲av黄床| 亚洲毛片一区在线播放| 国产成人亚洲一区二区三区| 日本一二不卡高清在线视频| 偷窥偷拍视频一区二区|