亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

Python13學習筆記

2019-11-06 06:03:14
字體:
來源:轉載
供稿:網友

錯誤和異常

 

錯誤和異常在程序設計中是兩個不同的概念。這兩個概念又有著密切聯系。

錯誤是客觀存在的一個現象。錯誤就在那里,不聲不響。

錯誤分為語法錯誤和邏輯錯誤。

語法錯誤是靜態的,編譯/解釋程序會發現這些語法錯誤,并輔助我們糾正這些語法錯誤。

邏輯錯誤動態的,是運算邏輯不完整不正確,會導致程序運行失敗。

 

異常是一種手段措施,是系統發現程序運行出錯后,為避免程序失敗,中斷正??刂屏鞒滩⒉扇〉拇胧?。這個措施分為兩個階段:首先發布錯誤信息(拋出異常),其次處理這個錯誤并采取相應的操作。

 

 

在Python語言中所說異常還表示異常對象,就是將錯誤發生時的狀態信息封裝為一個對象。我們所謂拋出異常就是生成這個異常對象并讓這個對象能被訪問。異常對象一般是由系統拋出,但也可以由程序主動拋出。

 

 

try-  except 語句:

try:

    normal code piece    # 系統會監控這段代碼是否有錯誤發生,如果有會拋出相應的異常對象。

exceptException[, reason]: #程序可以捕獲指定異常對象并做進一步的處理。

    except code piece    # 捕獲異常后的處理代碼。

 

說明:

reason將會是一個包含來自導致異常的代碼的診斷信息的類實例. 異常參數自身會組成一個元組,并存儲為類實例(異常類的實例)的屬性. 上邊的第一種用法中, reason 將會是一個Exception 類的實例. 對于大多內建異常, 也就是從 StandardError 派生的異常, 這個元組只包含一個指示錯誤原因的字符串. 一般說來, 異常的名字已經是一個滿意的線索了, 但這個錯誤字符串會提供更多的信息. 操作系統或其他環境類型的錯誤, 例如 IOError , 元組中會把操作系統的錯誤編號放在錯誤字符串前. 無論 reason 只包含一個字符串或是由錯誤編號和字符串組成的元組, 調用 str(reason) 總會返回一個良好可讀的錯誤原因. 不要忘記 reason 是一個類實例 - 這樣做你其實是調用類的特殊方法 __str__() . 我們將在第 13 章探索面向對象編程中的這些特殊方法. 唯一的問題就是某些第三方或是其他外部庫并不遵循這個標準協議. 我們推薦你在引發你自己的異常時遵循這個標準(參見核心風格筆記).

 

 

 

擴展支持:

1.      多個excption子句依次捕獲不同的異常。

    except ValueError:

    retval = 'could not convert non-number tofloat'

    except TypeError:

    retval = 'object type cannot be convertedto float'

2.      一個exception子句中捕獲多個不同的異常。要求異常被放在一個元組里:

    except (Exception1, Exception2)[, reason]:

3.      捕獲所有異常:

except Exception, e:  或者 except: (裸except子句)

4.      else子句當沒有異常發生時運行。

5.      finally子句無論如何都會被運行。

 

完整的異常處理的語法模板:

try:

    try_suite

 

except Exception1:

    suite_for_Exception1  

except (Exception2,Exception3, Exception4):

    suite_for_Exceptions_2_3_and_4  

except Exception5,Argument5:

    suite_for_Exception5_plus_argument

except (Exception6,Exception7), Argument67:

    suite_for_Exceptions6_and_7_plus_argument  

except:

    suite_for_all_other_exceptions

else:

    no_exceptions_detected_suite

finally:

    always_execute_suite

 

主動拋出異常:

raise[SomeException [, args [, traceback]]], 參數說明如下:

第一個參數,SomeExcpetion,是觸發異常的名字.如果有,它必須是一個字符串,類或實例.

第二個符號為可選的 args(比如參數,值),來傳給異常.這可以是一個單獨的對象也可以是一個對象的元組.當異常發生時,異常的參數總是作為一個元組傳入.如果 args 原本就是元組,那么就將其傳給異常去處理;如果 args 是一個單獨的對象,就生成只有一個元素的元組(就是單元素元組).

最后一項參數,traceback,同樣是可選的(實際上很少用它),如果有的話,則是當異常觸發時新生成的一個用于異常-正?;?exception—normally)的追蹤(traceback)對象.

斷言拋出異常:

斷言對一個條件表達式進行判斷。正常應返回真,如果運行時該條件表達式為假則拋出斷言異常AssertionError. 語法如下:

assert exPRession[,arguments]

AssertionError 異常和其他的異常一樣可以用 try-except語句塊捕捉,但是如果沒有捕捉,它將終止程序運行而且提供一個traceback:

Traceback(innermost last): File "<stdin>", line 1, in ?

AssertionError

對于斷言觸發的異常AssertError,可以提供一個參數,捕獲這個斷言異常的exception子句中的args可以獲取這個參數。

try:

    assert 1 == 0, 'One does not equal zerosilly!'

except AssertionError,args:

    print '%s: %s' % (args.__class__.__name__,args)

 從命令行執行上面的代碼會導致如下的輸出:  

AssertionError: Onedoes not equal zero silly!

 

常見內建異常:

異常名稱        描述

BaseException     所有異常的基類                

SystemExit       python 解釋器請求退出

KeyboardInterrupt       用戶中斷執行(通常是輸入^C)

Exception       常規錯誤的基類

StopIteration       迭代器沒有更多的值

GeneratorExit      生成器(generator)發生異常來通知退出 

SystemExit       Python 解釋器請求退出

StandardError           所有的內建標準異常的基類

ArithmeticError          所有數值計算錯誤的基類

FloatingPointError         浮點計算錯誤

OverflowError     數值運算超出最大限制

ZeroDivisionError        除(或取模)零 (所有數據類型)

AssertionError           斷言語句失敗

AttributeError        對象沒有這個屬性

EOFError        沒有內建輸入,到達 EOF 標記

EnvironmentError          操作系統錯誤的基類

IOError            輸入/輸出操作失敗

OSError               操作系統錯誤

WindowsError            Windows 系統調用失敗

ImportError       導入模塊/對象失敗

KeyboardInterrupt         用戶中斷執行(通常是輸入^C)

LookupError          無效數據查詢的基類

IndexError          序列中沒有沒有此索引(index)

KeyError             映射中沒有這個鍵

MemoryError      內存溢出錯誤(對于 Python 解釋器不是致命的)

NameError      未聲明/初始化對象 (沒有屬性)

UnboundLocalErrorh  訪問未初始化的本地變量

ReferenceErrore      弱引用(Weak reference)試圖訪問已經垃圾回收了的對象

RuntimeError    一般的運行時錯誤

NotImplementedError     尚未實現的方法

SyntaxError        Python 語法錯誤

IndentationError     縮進錯誤

TabError             Tab 和空格混用

SystemError       一般的解釋器系統錯誤

TypeError    對類型無效的操作

ValueError    傳入無效的參數

UnicodeError        Unicode 相關的錯誤

UnicodeDecodeError         Unicode 解碼時的錯誤

UnicodeEncodeError       Unicode 編碼時錯誤

UnicodeTranslateError        Unicode 轉換時錯誤

Warning j                         警告的基類

DeprecationWarning     關于被棄用的特征的警告

FutureWarning        關于構造將來語義會有改變的警告

OverflowWarning       舊的關于自動提升為長整型(long)的警告

PendingDeprecationWarning     關于特性將會被廢棄的警告

RuntimeWarning          可疑的運行時行為(runtimebehavior)的警告

SyntaxWarning         可疑的語法的警告

UserWarning            用戶代碼生成的警告

 

自定義異常:

def class <SelfExceptionName>(<BaseExceptionName>):

    pass

自定義一個繼承了BaseExcetpton的異常類,什么也不做。對與自定義異常,只能通過raise語句拋出。

異常發生時,sys.exc_info() 函數可以獲取當前的異常信息。返回一個三元組(exc_type,exc_value,exc_traceback)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品视频资源| 国产精品美女久久久久av超清| 久久精品国产久精国产思思| 中文字幕亚洲综合| 精品自拍视频在线观看| 欧美激情一级精品国产| 岛国av在线不卡| 日韩欧美国产中文字幕| 91久久久久久国产精品| 伊人青青综合网站| 亚洲影院色在线观看免费| 久久精品国产欧美亚洲人人爽| 日韩在线观看网址| 国产精品免费视频久久久| 国产精品久久久久久五月尺| 亚洲午夜国产成人av电影男同| 91精品国产综合久久男男| 日韩经典中文字幕在线观看| 欧美丰满片xxx777| 26uuu日韩精品一区二区| 一区二区中文字幕| 欧美刺激性大交免费视频| 精品亚洲va在线va天堂资源站| 在线日韩av观看| 九九热精品在线| 久久久精品一区二区三区| 久久香蕉精品香蕉| 丝袜一区二区三区| 欧美日韩在线第一页| 精品亚洲国产成av人片传媒| 欧美成人自拍视频| 亚洲a成v人在线观看| 欧洲永久精品大片ww免费漫画| 久久亚洲综合国产精品99麻豆精品福利| 亚洲第一精品自拍| 欧美人与物videos| 亚洲精品久久久久久久久| 久久国产精彩视频| 茄子视频成人在线| 国产综合在线观看视频| 69久久夜色精品国产7777| 欧美亚洲一区在线| 欧美日韩国产成人在线观看| 国产精品人成电影在线观看| 国产精品96久久久久久又黄又硬| 欧美刺激性大交免费视频| 国产精品综合网站| 大荫蒂欧美视频另类xxxx| 国产成人激情小视频| 欧美另类老肥妇| 欧美丝袜美女中出在线| 色七七影院综合| 日韩成人在线视频| 77777少妇光屁股久久一区| xxx欧美精品| 久久精品电影网站| 久久国产精品首页| 日韩在线视频网站| 久久99精品久久久久久噜噜| 91精品国产乱码久久久久久久久| 欧美尺度大的性做爰视频| 精品中文字幕在线观看| 亚洲精品综合精品自拍| 欧美电影免费观看网站| 欧洲精品毛片网站| 国产aaa精品| 久久综合伊人77777尤物| 久久99青青精品免费观看| 亚洲嫩模很污视频| 国产97在线|亚洲| 欧美国产日韩一区二区| 欧美丝袜一区二区| 久久精品一偷一偷国产| 亚洲网站在线观看| 午夜精品久久久久久久男人的天堂| 亚洲成人黄色网址| 日韩在线视频导航| 亚洲天堂精品在线| 久久99精品久久久久久噜噜| xxxxxxxxx欧美| 一区二区三区高清国产| 91日韩在线播放| 亚洲一级黄色片| 欧美成人网在线| 国产精品久久综合av爱欲tv| 久久精品最新地址| 国产成人自拍视频在线观看| 欧美电影免费观看电视剧大全| 亚洲成年人在线| 欧洲中文字幕国产精品| 日韩激情片免费| 日韩中文在线不卡| 亚洲国产美女久久久久| 亚洲欧美另类自拍| 欧美成人午夜激情在线| 亚洲亚裔videos黑人hd| 亚洲欧洲在线播放| 欧美性猛交99久久久久99按摩| 九九热99久久久国产盗摄| 欧美日韩一区二区免费视频| 性色av一区二区咪爱| 国产精品最新在线观看| 欧美视频在线免费| 成人伊人精品色xxxx视频| 日韩亚洲精品视频| 国产一区二区黄| 91精品国产综合久久男男| 最新亚洲国产精品| 欧美国产第二页| 久久69精品久久久久久国产越南| 色综合久久中文字幕综合网小说| 欧美日韩精品在线观看| 亚洲欧美日韩一区在线| 国产一区二区三区日韩欧美| 日韩中文字幕在线免费观看| 日韩av在线看| 亚洲国产精品va在线看黑人动漫| 国内揄拍国内精品少妇国语| 久久久久久久久久久久av| 亚洲欧洲在线视频| 日韩小视频在线| 国内精品伊人久久| 欧美成人激情视频免费观看| 久久人人爽人人爽人人片av高请| 欧美第一淫aaasss性| 中文字幕久热精品视频在线| 国产精品揄拍500视频| 国产精品第三页| 久久精品国产99国产精品澳门| 日本成人在线视频网址| 午夜精品福利电影| 日韩**中文字幕毛片| 日韩精品免费在线观看| 日韩精品欧美激情| 日韩精品一区二区三区第95| 69国产精品成人在线播放| 国产精品人人做人人爽| 国产精品无码专区在线观看| 日韩av影院在线观看| 日韩在线精品视频| 日韩成人在线观看| 亚洲色图在线观看| 成人国产亚洲精品a区天堂华泰| 欧美日韩一区二区免费视频| 久久噜噜噜精品国产亚洲综合| 国产性色av一区二区| 精品成人国产在线观看男人呻吟| 91精品国产99久久久久久| 欧美一区二区大胆人体摄影专业网站| 国产亚洲xxx| 国产精品69精品一区二区三区| 亚洲精品一区二区网址| 久久69精品久久久久久久电影好| 日韩69视频在线观看| 国内精品美女av在线播放| 伊人一区二区三区久久精品| 日韩欧美成人网| 国产做受69高潮| 亚洲无av在线中文字幕| 狠狠色狠狠色综合日日小说| 国产欧美精品xxxx另类| 日韩一二三在线视频播| 亚洲欧洲在线免费| 久久精品最新地址|