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

Python異常處理總結(jié)

 更新時間:2014年08月15日 14:56:17   投稿:shichen2014  
這篇文章主要介紹了Python異常處理總結(jié),需要的朋友可以參考下

本文較為詳細(xì)的羅列了Python常見的異常處理,供大家參考,具體如下:

1. 拋出異常和自定義異常

Python用異常對象(exception object)表示異常情況,遇到錯誤后,會引發(fā)異常。如果異常對象并未被處理或捕捉,程序就會用所謂的回溯(Traceback,一種錯誤信息)終止執(zhí)行。

①.raise 語句

Python中的raise 關(guān)鍵字用于引發(fā)一個異常,基本上和C#和Java中的throw關(guān)鍵字相同,如下所示:

# -- coding: utf-8 --

def ThorwErr():
  raise Exception("拋出一個異常")

# Exception: 拋出一個異常
ThorwErr()

raise關(guān)鍵字后面是拋出是一個通用的異常類型(Exception),一般來說拋出的異常越詳細(xì)越好,Python在exceptions模塊內(nèi)建了很多的異常類型,通過使用dir函數(shù)來查看exceptions中的異常類型,如下:

import exceptions

# ['ArithmeticError', 'AssertionError'.....]
print dir(exceptions)

傳遞異常

捕捉到了異常,但是又想重新引發(fā)它(傳遞異常),可以使用不帶參數(shù)的raise語句即可:

# -- coding: utf-8 --
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

②.自定義異常類型

Python中也可以自定義自己的特殊類型的異常,只需要要從Exception類繼承(直接或間接)即可:

class SomeCustomException(Exception):
  pass

2. 捕捉異常

和C#中的try/catch類似,Python中使用try/except關(guān)鍵字來捕捉異常,如下:

# -- coding: utf-8 --

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

①.捕捉多個異常

在一個except語句只捕捉其后聲明的異常類型,如果可能會拋出的是其他類型的異常就需要再增加一個except語句了,或者也可以指定一個更通用的異常類型比如:Exception,如下:

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

為了捕獲多個異常,除了聲明多個except語句之外,還可以在一個except語句之后將多個異常作為元組列出來即可:

# -- coding: utf-8 --
try:
  print 2/'0'
except (ZeroDivisionError,Exception):
  print '發(fā)生了一個異常'

②.獲取異常信息

每個異常都會有一些異常信息,一般情況下我們應(yīng)該把這些異常信息記錄下來:

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

3. finally子句

finally子句和try子句聯(lián)合使用但是和except語句不同,finally不管try子句內(nèi)部是否有異常發(fā)生,都會執(zhí)行finally子句內(nèi)的代碼。所有一般情況下,finally自己常常用于關(guān)閉文件或者在Socket中。

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

相關(guān)文章

  • Tkinter使用Progressbar創(chuàng)建和管理進(jìn)度條的操作代碼

    Tkinter使用Progressbar創(chuàng)建和管理進(jìn)度條的操作代碼

    Progressbar是Tkinter庫中的一個小部件,用于創(chuàng)建和管理進(jìn)度條,這篇文章主要介紹了Tkinter使用Progressbar創(chuàng)建和管理進(jìn)度條,本文結(jié)合實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • Python3?DataFrame缺失值的處理方法

    Python3?DataFrame缺失值的處理方法

    這篇文章主要介紹了Python3?DataFrame缺失值的處理,包括缺失值的判斷缺失值數(shù)據(jù)的過濾及缺失值數(shù)據(jù)的填充,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • python安裝包site-packages的方法步驟

    python安裝包site-packages的方法步驟

    本文主要介紹了python安裝包site-packages的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • Python集合set()使用的方法詳解

    Python集合set()使用的方法詳解

    這篇文章主要為大家詳細(xì)介紹了Python集合set()使用的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Django+Celery實現(xiàn)動態(tài)配置定時任務(wù)的方法示例

    Django+Celery實現(xiàn)動態(tài)配置定時任務(wù)的方法示例

    這篇文章主要介紹了Django + Celery 實現(xiàn)動態(tài)配置定時任務(wù)的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • matplotlib源碼解析標(biāo)題實現(xiàn)(窗口標(biāo)題,標(biāo)題,子圖標(biāo)題不同之間的差異)

    matplotlib源碼解析標(biāo)題實現(xiàn)(窗口標(biāo)題,標(biāo)題,子圖標(biāo)題不同之間的差異)

    這篇文章主要介紹了matplotlib源碼解析標(biāo)題實現(xiàn)(窗口標(biāo)題,標(biāo)題,子圖標(biāo)題不同之間的差異),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • OpenCV圖像形態(tài)學(xué)的實現(xiàn)

    OpenCV圖像形態(tài)學(xué)的實現(xiàn)

    本文主要介紹了OpenCV圖像形態(tài)學(xué)的實現(xiàn),包括腐蝕、膨脹、開運算、閉運算、梯度運算、頂帽運算和黑帽運算,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • Django中的Model操作表的實現(xiàn)

    Django中的Model操作表的實現(xiàn)

    這篇文章主要介紹了Django中的Model操作表的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • python實現(xiàn)list元素按關(guān)鍵字相加減的方法示例

    python實現(xiàn)list元素按關(guān)鍵字相加減的方法示例

    這篇文章主要介紹了python實現(xiàn)list元素按關(guān)鍵字相加減的方法,結(jié)合具體實例形式分析了Python針對list元素遍歷與運算相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06
  • python+selenium實現(xiàn)自動搶票功能實例代碼

    python+selenium實現(xiàn)自動搶票功能實例代碼

    Selenium是ThoughtWorks公司的一個強大的開源Web功能測試工具系列,采用Javascript來管理整個測試過程,包括讀入測試套件、執(zhí)行測試和記錄測試結(jié)果。這篇文章主要介紹了python+selenium實現(xiàn)自動搶票,需要的朋友可以參考下
    2018-11-11

最新評論