国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

第5章 錯誤和異常

2019-11-08 18:35:27
字體:
來源:轉載
供稿:網友

5.1錯誤

    Python中常見錯誤之一是語法錯誤(syntax errors)。    常見錯誤之二是在沒有語法錯誤時,會出現邏輯錯誤。    當python檢測到一個錯誤時,解釋器就無法繼續執行下去,于是拋出相應的信息,這些信息我們統稱為異常信息。

5.2異常

常見的異常:
異常描述
NameError嘗試訪問一個沒有聲明的變量
ZeroDivisionError除數為0
SyntaxError語法錯誤
IndexError索引超出序列范圍
KeyError請求一個不存在的字典關鍵字
IOError輸入/輸出錯誤(比如你要讀的文件不存在)
AttributeError嘗試訪問未知的對象屬性

5.3 處理異常

為了讓程序健壯,有時需要處理異常。為使程序不因為錯誤而停止,需要程序中“異常處理”設置,如果沒有“異常處理”,則當異常出現時就會導致程序中止。

5.3.1 try...except...

如果沒有異常發生,except子句在try語句執行之后被忽略;如果try子句中有異常發生,該部分的其他語句被忽略,直接跳到except部分,執行其后面指定的異常類型及其子句。except后面也可以沒有任何異常類型,及無異常參數。如果這樣,不論try部分發生什么異常,都會執行except。eval():將字符串str當成有效的表達式來求值并返回計算結果。raise :作為單獨一個語句,它的含義是將異常信息拋出。

5.3.2 處理多個異常

處理過個異常并不是因為同時報出多個異常,程序在運行中,只要遇到一個異常就會有反應。所謂處理多個異常的意思是可以容許捕獲不同的異常,由不同的except子句處理。如果有多個except,try里面遇到一個異常,就轉到相應的except子句,其他的忽略。如果except沒有相應的異常,該異常也會拋出,不過這時程序就要中止了,因為異常“浮出”程序頂部。除了用多個except之外,還可以在一個except后面放多個異常參數。注意:多個參數一定要用圓括號包裹起來。如果希望打印出默認錯誤但程序不能中斷:python3中except(ZeroDivisionError,ValueError)as e: PRint(e)

5.3.3 else語句

try:
print("I am try")except: print("I am except")else: print("I am else")I am tryI am elsetry: print(1/0)except: print("I am except")else: print("I am else")I am exceptexcept(Exception)as e: 不管什么異常都會捕獲,并且傳給變量e。

5.3.4 finally子句

有了finally,不管前面執行的是try,還是except,最終都要執行finally。因此,有一種說法是將finally用在可能的異常后進行清理。

5.3.5 assert語句

>>> assert 1==1
>>> assett 1==0 File "<stdin>", line 1 assett 1==0 ^SyntaxError: invalid syntaxassert,翻譯過來就是“斷言”之意。assert是語句等價于布爾真的判定,發生異常就意味著表達式為假。應用情境就和意思一樣,當程序運行到某個節點的時候,就斷定某個變量的值是什么,或者對象必然擁有某個屬性等,簡單說就是斷定什么東西必然是什么,如果不是,就拋出錯誤。如果沒有特別的目的,斷言應該用于如下情況:防御性的編程。運行時對程序邏輯的檢測。合約性檢查(比如前置條件,后置條件)。程序中的常量。檢查文檔。(python使用斷言的最佳時機)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 辉南县| 磴口县| 竹山县| 黑水县| 牡丹江市| 兴化市| 新和县| 孟津县| 体育| 新建县| 来安县| 西乌珠穆沁旗| 奎屯市| 前郭尔| 宕昌县| 会昌县| 贵溪市| 双桥区| 龙江县| 大关县| 拜泉县| 峨眉山市| 高安市| 郸城县| 新竹县| 青浦区| 遂溪县| 广安市| 泽库县| 仪陇县| 黑龙江省| 綦江县| 莱州市| 和龙市| 岚皋县| 汝南县| 赤壁市| 赤壁市| 安阳市| 茂名市| 灌云县|