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

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://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九色在线精品一区| 国产视频传媒一区二区| 日本不卡一区二区视频| 中国女人内射69xx| 国产91高清免费视频| 久久精品国产普通话对白| 亚洲国产精品一区二区av不卡| 97人妻人人澡人人爽| 丰满人妻毛片一区二区三区| 日本亚洲精品在线观看| 一区二区三区人妻日韩| 2018在线不卡爱视频| 国产精品偷伦一区二区| 久久久人妻精品一区二区三区四区 | 丰满人妻少妇一区二区| 亚洲自偷精品视频自拍| 91国内外精品自在线播放| 99热这里只有精品欧美| 日本成年网站在线观看| 国产精品亚洲欧美日韩在线播放| 欧美一区二区成人精品视频| av天堂高清在线观看| 国产黄片大秀在线观看| 99亚洲综合一区二区三区| 又黄又湿又刺激中文字幕| 国产一区二区三区区别| 色伊人久久综合中文字幕| 国产无套内射三级视频| 嫩草网站国产精品一区二| av影片在线观看亚洲天堂| 亚洲视频在线的视频在| 国产精品亚洲欧美中字| 国产91在线精品超碰人人| 黑丝美女被内射视频免费观看| 国产特级黄片免费观看| 色婷婷一区二区三区影片| 亚洲一区二区三区小蜜桃| 中文字幕乱码十国产乱码| 国产av麻豆全部免费| 粉嫩护士国产在线观看| 欧美激情日韩精品久久久|