最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Python中的異常處理

2020-05-25 08:20 作者:Iammyself001  | 我要投稿

1.異常類型

異常名稱

?

描述

?

BaseException

?

所有異常的基類

?

SystemExit

?

解釋器請求退出

?

KeyboardInterrupt

?

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

?

Exception

?

常規(guī)錯誤的基類

?

StopIteration

?

迭代器沒有更多的值

?

GeneratorExit

?

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

?

StandardError

?

所有的內(nèi)建標準異常的基類

?

ArithmeticError

?

所有數(shù)值計算錯誤的基類

?

FloatingPointError

?

浮點計算錯誤

?

OverflowError

?

數(shù)值運算超出最大限制

?

ZeroDivisionError

?

除(或取模)零 (所有數(shù)據(jù)類型)

?

AssertionError

?

斷言語句失敗

?

AttributeError

?

對象沒有這個屬性

?

EOFError

?

沒有內(nèi)建輸入,到達EOF 標記

?

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.異常處理

1)try/except語句

捕捉異常通常用try(捕捉錯誤)/except(處理錯誤)語句。如果你不想在異常發(fā)生時結(jié)束你的程序,只需在try里捕獲它。異??蓭?shù),用于說明異常原因

?

try:

????fh = open("testfile", "w")

????fh.write("這是一個測試文件,用于測試異常!!")

except (IOError,RuntimeError): ?# 當出現(xiàn)這兩種error中的一種時,執(zhí)行except后面的操作

????print("Error: 沒有找到文件或讀取文件失敗")

except Exception as e: ?# 使用異常基類捕獲

????print("Error: 出錯")

else:

????print("內(nèi)容寫入文件成功")

????fh.close()

?

?

2)try/finally語句

try-finally 語句無論是否發(fā)生異常都將執(zhí)行最后的代碼。

?

try:

????fh = open("testfile", "w")

????fh.write("這是一個測試文件,用于測試異常!!")

finally:

????print("Error: 沒有找到文件或讀取文件失敗")

3.自己設(shè)置異常(用于bug修改、錯誤檢查)

我們可以使用raise語句自己觸發(fā)異常

?

raise語法格式如下:

?

raise [Exception [, args [, traceback]]]

語句中Exception是異常的類型(例如,NameError)參數(shù)是一個異常參數(shù)值。該參數(shù)是可選的,如果不提供,異常的參數(shù)是"None"。

?

最后一個參數(shù)是可選的(在實踐中很少使用),如果存在,是跟蹤異常對象。例子如下:

?

def functionName( level ):

????if level < 1:

????????raise Exception("Invalid level!", level)

????????# 觸發(fā)異常后,后面的代碼就不會再執(zhí)行

對于自定義的異常,在使用except語句處理異常時,一定要將Exception中的異常名作為except語句的一個參數(shù)。例子如下:

?

try:

????#正常邏輯

except "Invalid level!":

????#觸發(fā)自定義異常

else:

????#其余代碼

?

4.自己創(chuàng)建異常類型,用于常見異常復(fù)用

一個異??梢允且粋€字符串,類或?qū)ο蟆?/p>

?

class Networkerror(RuntimeError): ?# 基于RuntimeError類創(chuàng)建一個新的類

????def __init__(self, arg): ?# 定義一個函數(shù)

????????self.args = arg

?

?

?

?

try:

????raise Networkerror("Bad hostname") ?#拋出一個Networkerror異常

except Networkerror as e: ?#匹配異常的類型,當出現(xiàn)了Networkerror型異常時,執(zhí)行該except語句,并傳遞變量e,變量 e 是用于創(chuàng)建Networkerror類的實例,這里的e應(yīng)該就是這個異常對象?

????print(e.args)

?

??


Python中的異常處理的評論 (共 條)

分享到微博請遵守國家法律
克什克腾旗| 新昌县| 尚志市| 新竹市| 建水县| 陕西省| 滨州市| 宜丰县| 汉源县| 化州市| 永泰县| 南江县| 喀喇沁旗| 河西区| 拉孜县| 阳信县| 吉木乃县| 平武县| 东至县| 象山县| 新安县| 新闻| 博罗县| 大石桥市| 霸州市| 增城市| 曲周县| 高青县| 东台市| 长治县| 南华县| 贵溪市| 平罗县| 杭州市| 航空| 固镇县| 区。| 昌宁县| 江源县| 涞水县| 庄河市|