亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

如何在Python中進(jìn)行異常處理

 更新時(shí)間:2022年03月07日 11:45:37   作者:一只懐壞旭  
這篇文章主要介紹了如何在Python中進(jìn)行異常處理,Python中使用用異常對(duì)象(exception object)表示異常情況,當(dāng)程序運(yùn)行遇到錯(cuò)誤后,就會(huì)觸發(fā)發(fā)異常,下文關(guān)于異常處理的相關(guān)內(nèi)容,需要的小伙伴可以參考一下

一、拋出異常和自定義異常

Python中使用用異常對(duì)象(exception object)表示異常情況,當(dāng)程序運(yùn)行遇到錯(cuò)誤后,就會(huì)觸發(fā)發(fā)異常。相信大家在編碼是都會(huì)遇到這種情況,那么如果異常對(duì)象并未被處理或捕捉,程序就會(huì)用報(bào)錯(cuò)然后終止執(zhí)行。

1、raise語(yǔ)句

Python中的raise 關(guān)鍵字用于觸發(fā)發(fā)一個(gè)異常,和我們熟悉的Java中的throw關(guān)鍵字相同,

如下所示:

>>>?? ?def ThorwErr():
>>> ?? ? raise Exception("拋出一個(gè)異常")
>>>?? ?# Exception: 拋出一個(gè)異常
>>>?? ?ThorwErr()

如上raise關(guān)鍵字后面是拋出是一個(gè)通用的異常類型(Exception),但是在實(shí)際編碼中我們拋出的異常越詳細(xì)越好。Python在exceptions模塊內(nèi)建了很多的異常類型,我們用dir函數(shù)來(lái)查看exceptions中都有哪些的異常類型,

如下:

>>>?? ?import exceptions
>>>?? ?print dir(exceptions)

傳遞異常:

捕捉到了異常,要想重新引發(fā)它(傳遞異常),我們可以使用不帶參數(shù)的raise語(yǔ)句:

>>>?? ?class MuffledCalculator:
>>> ?? ? muffled = False
>>>?? ?def calc(self,expr):
>>>?? ? ? ?try:
>>> ?? ? ? ? return eval(expr)
>>> ?? ? ? except ZeroDivisionError:
>>> ??? ? ? ?if self.muffled:
>>> ? ?? ? ? ? print 'Division by zero is illegal'
>>> ??? ? ? ?else:
>>> ??? ? ? ? ?raise

2、自定義異常類型

Python中我們也可以定義自己的特殊異常類型,只需要繼承Exception類即可,這里的繼承既可以是直接繼承,也可以是間接繼承。

>>>?? ?class selfExceptions(Exception):
>>>?? ??? ?pass

二、捕捉異常

java中的try/catch相似,在Python中使用try/except捕捉異常

try:
? print 2/0
except ZeroDivisionError:
? print '除數(shù)不能為0'

1、捕捉多個(gè)異常

使用except語(yǔ)句時(shí)我們只能捕捉其后聲明了的那個(gè)異常類型,如果代碼可能會(huì)拋出的是其他類型的異常,這時(shí)就需要再增加一個(gè)except語(yǔ)句了,

如下:

try:
? print 2/'0'
except ZeroDivisionError:
? print '除數(shù)不能為0'
except Exception:
? print '其他類型異常'

為了捕獲多個(gè)異常,除了聲明多個(gè)except語(yǔ)句之外,還可以在一個(gè)except語(yǔ)句之后將多個(gè)異常作為元組列出來(lái)即可:

try:
? print 2/'0'
except (ZeroDivisionError,Exception):
? print '發(fā)生了一個(gè)異常'

2、獲取異常信息

每個(gè)異常都會(huì)有一些異常信息,我們可以把這些異常打印出來(lái)查看,便于修改代碼:

try:
? print 2/'0'
except (ZeroDivisionError,Exception) as e:
? # unsupported operand type(s) for /: 'int' and 'str'
? print e

三、finally子句

Java中一樣,finally不管try子句內(nèi)部是否有異常發(fā)生,都會(huì)執(zhí)行finally子句內(nèi)的代碼。一般使用時(shí),finally常常使用用于關(guān)閉文件或者在Socket中。

try:
? print 2/'0'
except (ZeroDivisionError,Exception):
? print '發(fā)生了一個(gè)異常'
finally:
? print '不管是否發(fā)生異常都執(zhí)行'

到此這篇關(guān)于如何在Python中進(jìn)行異常處理的文章就介紹到這了,更多相關(guān)Python中進(jìn)行異常處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python實(shí)現(xiàn)簡(jiǎn)單神經(jīng)網(wǎng)絡(luò)算法

    python實(shí)現(xiàn)簡(jiǎn)單神經(jīng)網(wǎng)絡(luò)算法

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單神經(jīng)網(wǎng)絡(luò)算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • matplotlib.pyplot.plot()參數(shù)使用詳解

    matplotlib.pyplot.plot()參數(shù)使用詳解

    這篇文章主要介紹了matplotlib.pyplot.plot()參數(shù)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • python中文分詞教程之前向最大正向匹配算法詳解

    python中文分詞教程之前向最大正向匹配算法詳解

    中文分詞是中文文本處理的一個(gè)基礎(chǔ)性工作,然而長(zhǎng)久以來(lái),在Python編程領(lǐng)域,一直缺少高準(zhǔn)確率、高效率的分詞組件。下面這篇文章主要給大家介紹了關(guān)于python中文分詞教程之前向最大正向匹配算法的相關(guān)資料,需要的朋友可以參考下。
    2017-11-11
  • matplotlib相關(guān)系統(tǒng)目錄獲取方式小結(jié)

    matplotlib相關(guān)系統(tǒng)目錄獲取方式小結(jié)

    這篇文章主要介紹了matplotlib相關(guān)系統(tǒng)目錄獲取方式小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Pandas實(shí)現(xiàn)批量拆分與合并Excel的示例代碼

    Pandas實(shí)現(xiàn)批量拆分與合并Excel的示例代碼

    這篇文章主要為大家詳細(xì)講講如何利用python Pandas實(shí)現(xiàn)批量拆分與合并Excel,文中有非常詳細(xì)的的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們很有幫助,需要的朋友可以參考下
    2022-05-05
  • Python中super的用法實(shí)例

    Python中super的用法實(shí)例

    這篇文章主要介紹了Python中super的用法實(shí)例,本文對(duì)比了普通繼承和super繼承的相關(guān)內(nèi)容,從運(yùn)行結(jié)果上看,普通繼承和super繼承是一樣的,但是其實(shí)它們的內(nèi)部運(yùn)行機(jī)制不一樣,這一點(diǎn)在多重繼承時(shí)體現(xiàn)得很明顯,需要的朋友可以參考下
    2015-05-05
  • 利用Fn.py庫(kù)在Python中進(jìn)行函數(shù)式編程

    利用Fn.py庫(kù)在Python中進(jìn)行函數(shù)式編程

    這篇文章主要介紹了利用Fn.py庫(kù)在Python中進(jìn)行函數(shù)式編程,基于Scala中的類似風(fēng)格,需要的朋友可以參考下
    2015-04-04
  • 總結(jié)Python函數(shù)參數(shù)的六種類型

    總結(jié)Python函數(shù)參數(shù)的六種類型

    這篇文章主要總結(jié)了Python函數(shù)參數(shù)的六種類型,傳遞參數(shù)實(shí)現(xiàn)不同場(chǎng)景的靈活使用,下面總結(jié)的六種函數(shù)參數(shù)類型,需要的小伙伴可以參考一下
    2022-03-03
  • PyQt5+serial模塊實(shí)現(xiàn)一個(gè)串口小工具

    PyQt5+serial模塊實(shí)現(xiàn)一個(gè)串口小工具

    這篇文章主要為大家詳細(xì)介紹了如何利用PyQt5和serial模塊實(shí)現(xiàn)一個(gè)簡(jiǎn)單的串口小工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-01-01
  • 深入理解 Python 中的多線程 新手必看

    深入理解 Python 中的多線程 新手必看

    你應(yīng)當(dāng)將下邊的例子運(yùn)行多次,以便可以注意到線程是不可預(yù)測(cè)的和線程每次運(yùn)行出的不同結(jié)果。聲明:從這里開始忘掉你聽到過(guò)的關(guān)于GIL的東西,因?yàn)镚IL不會(huì)影響到我想要展示的東西
    2016-11-11

最新評(píng)論