日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
編程須知:Python異常知多少以及如何處理?

 本文主要是認(rèn)識python的異常有哪些類型,以及如何進行python異常處理?有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。如果有其它編程語言經(jīng)驗,如Java,可以理解的更深入些。

成都創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)與策劃設(shè)計,長葛網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:長葛等地區(qū)。長葛做網(wǎng)站價格咨詢:18982081108

我們知道,異常處理,是編程語言或計算機硬件里的一種機制,用于處理軟件或信息系統(tǒng)中出現(xiàn)的異常狀況(即超出程序正常執(zhí)行流程的某些特殊條件),現(xiàn)代編程語言都有這種保證機制,以保證程序整體的運行穩(wěn)健……廢話少說,來看看Python的異常以及相關(guān)處理。

1.異常的類型

異常的類型多種多樣,常見的異常有:

AttributeError 試圖訪問一個對象沒有的屬性,比如foo.x,但是foo沒有屬性xIOError 輸入/輸出異常;基本上是無法打開文件ImportError 無法引入模塊或包;基本上是路徑問題或名稱錯誤IndentationError 語法錯誤(的子類) ;代碼沒有正確對齊IndexError 下標(biāo)索引超出序列邊界,比如當(dāng)x只有三個元素,卻試圖訪問x[5]KeyError 試圖訪問字典里不存在的鍵KeyboardInterrupt Ctrl+C被按下NameError 嘗試訪問一個沒有申明的變量SyntaxError Python代碼非法,代碼不能編譯(個人認(rèn)為這是語法錯誤,寫錯了)TypeError 傳入對象類型與要求的不符合UnboundLocalError 試圖訪問一個還未被設(shè)置的局部變量,基本上是由于另有一個同名的全局變量,導(dǎo)致你以為正在訪問它ValueError 傳入一個調(diào)用者不期望的值,即使值的類型是正確的

其他的異常:

Exception可以捕獲任意異常

BaseException 所有異常的基類SystemExit 解釋器請求退出KeyboardInterrupt 用戶中斷執(zhí)行(通常是輸入^C)Exception 常規(guī)錯誤的基類StopIteration 迭代器沒有更多的值GeneratorExit 生成器(generator)發(fā)生異常來通知退出StandardError 所有的內(nèi)建標(biāo)準(zhǔn)異常的基類ArithmeticError 所有數(shù)值計算錯誤的基類FloatingPointError 浮點計算錯誤OverflowError 數(shù)值運算超出最大限制ZeropisionError 除(或取模)零 (所有數(shù)據(jù)類型)AssertionError 斷言語句失敗AttributeError 對象沒有這個屬性EOFError 沒有內(nèi)建輸入,到達(dá)EOF 標(biāo)記EnvironmentError 操作系統(tǒng)錯誤的基類IOError 輸入/輸出操作失敗OSError 操作系統(tǒng)錯誤WindowsError 系統(tǒng)調(diào)用失敗ImportError 導(dǎo)入模塊/對象失敗LookupError 無效數(shù)據(jù)查詢的基類IndexError 序列中沒有此索引(index)KeyError 映射中沒有這個鍵MemoryError 內(nèi)存溢出錯誤(對于Python 解釋器不是致命的)NameError 未聲明/初始化對象 (沒有屬性)UnboundLocalError 訪問未初始化的本地變量ReferenceError 弱引用(Weak reference)試圖訪問已經(jīng)垃圾回收了的對象RuntimeError 一般的運行時錯誤NotImplementedError 尚未實現(xiàn)的方法SyntaxError Python 語法錯誤IndentationError 縮進錯誤TabError Tab 和空格混用SystemError 一般的解釋器系統(tǒng)錯誤TypeError 對類型無效的操作ValueError 傳入無效的參數(shù)UnicodeError Unicode 相關(guān)的錯誤UnicodeDecodeError Unicode 解碼時的錯誤UnicodeEncodeError Unicode 編碼時錯誤UnicodeTranslateError Unicode 轉(zhuǎn)換時錯誤Warning 警告的基類DeprecationWarning 關(guān)于被棄用的特征的警告FutureWarning 關(guān)于構(gòu)造將來語義會有改變的警告OverflowWarning 舊的關(guān)于自動提升為長整型(long)的警告PendingDeprecationWarning 關(guān)于特性將會被廢棄的警告RuntimeWarning 可疑的運行時行為(runtime behavior)的警告SyntaxWarning 可疑的語法的警告UserWarning 用戶代碼生成的警告

2.捕獲異常,處理異常

只有將對應(yīng)的異常類型捕獲才能進行異常的處理

異常的捕獲處理方式:

 
 
 
  1. try: 
  2.  #程序執(zhí)行的代碼,異常檢測的代碼 
  3.  pass 
  4. except Exception as e: 
  5.  #捕獲異常后進行的代碼, 
  6.  print(e) 
  7.  pass 
  8. else: 
  9.  #沒有捕獲到相應(yīng)的異常后進行的代碼 
  10.  pass 
  11. finally: 
  12.  #不論有沒有異常捕獲最后都要執(zhí)行的代碼 
  13.  pass 

這里的except就像是java里的catch

也可以在代碼中添加多個except語句來捕獲不同種類型的異常,執(zhí)行相應(yīng)不同的操作

3.主動拋出異常

異常的拋出可以手動添加

 
 
 
  1. try: 
  2.  raise Exception("我自己拋的") 
  3. except Exception as e: 
  4.  print(e)#這里會輸出“我自己拋的” 

4.自定義異常類型

在實際編程中,語言內(nèi)置的異常并不總夠用,所有,我們可以自己定義自己所需要的異常的類型。可以這樣來實現(xiàn)。

主要利用類中的__str__方法實現(xiàn)

 
 
 
  1. class myException(BaseException): 
  2.  def __init__(self,message): 
  3.  self.message=message 
  4.  def __str__(self): 
  5.  return self.message 
  6.   
  7. try: 
  8.  raise myException('自定義的異常類型') 
  9. except myException as e: 
  10.  print(e)  

5.斷言

斷言assert用于判斷某個條件是否成立,如果不成立則拋出AssertionError異常,該異??梢圆东@。

示例如下:

 
 
 
  1. assert 條件 
  2. 類如: 
  3. assert 1 == 1 
  4. assert 2 + 2 == 2 * 2 
  5. assert len(['my list', 12]) < 10 
  6. assert range(3) == [0, 1, 2] 
  7. #相當(dāng)于 
  8. if not 條件 : 
  9.  raise AssertionError() 
  10.   
  11. assert 條件,"描述" 
  12. #相當(dāng)于 
  13. if not 條件 : 
  14.  raise AssertionError("描述") 

下面是我們?nèi)绾斡?try-except 語句捕獲 AssertionError 異常:

 
 
 
  1. try: 
  2.  assert 1 == 0, 'One does not equal zero silly!' 
  3. except AssertionError, args: 
  4.  print(args.__class__.__name__, ":",args) 

以上就是python的異常以及相關(guān)處理。相信你在進行Python編程時,若有異常問題,以上內(nèi)容,足以幫助你來處理啦。


網(wǎng)站欄目:編程須知:Python異常知多少以及如何處理?
地址分享:http://www.dlmjj.cn/article/dhepecj.html