成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python標(biāo)準(zhǔn)庫(kù)---17、內(nèi)置異常

mylxsw / 2099人閱讀

摘要:關(guān)聯(lián)值通常會(huì)作為參數(shù)被傳遞給異常類的構(gòu)造器。所有內(nèi)置異常的基類。此異常僅用于非限定名稱。由內(nèi)置函數(shù)和的方法所引發(fā),用來表示該迭代器不能產(chǎn)生下一項(xiàng)。當(dāng)一個(gè)或函數(shù)返回時(shí),將引發(fā)一個(gè)新的實(shí)例,函數(shù)返回的值將被用作異常構(gòu)造器的形參。

上一篇文章:Python標(biāo)準(zhǔn)庫(kù)---16、內(nèi)置類型:上下文管理器類型、其他、特殊屬性
下一篇文章:Python標(biāo)準(zhǔn)庫(kù)---18、文本處理服務(wù):string 常見的字符串操作

在 Python 中,所有異常必須為一個(gè)派生自 BaseException 的類的實(shí)例。 在帶有提及一個(gè)特定類的 except 子句的 try 語(yǔ)句中,該子句也會(huì)處理任何派生自該類的異常類(但不處理 它 所派生出的異常類)。 通過子類化創(chuàng)建的兩個(gè)不相關(guān)異常類永遠(yuǎn)是不等效的,既使它們具有相同的名稱。

下面列出的內(nèi)置異常可通過解釋器或內(nèi)置函數(shù)來生成。除非另有說明,它們都會(huì)具有一個(gè)提示導(dǎo)致錯(cuò)誤詳細(xì)原因的“關(guān)聯(lián)值”。 這可以是一個(gè)字符串或由多個(gè)信息項(xiàng)(例如一個(gè)錯(cuò)誤碼和一個(gè)解釋錯(cuò)誤的字符串)組成的元組。 關(guān)聯(lián)值通常會(huì)作為參數(shù)被傳遞給異常類的構(gòu)造器。

用戶代碼可以引發(fā)內(nèi)置異常。 這可被用于測(cè)試異常處理程序或報(bào)告錯(cuò)誤條件,“就像” 在解釋器引發(fā)了相同異常的情況時(shí)一樣;但是請(qǐng)注意,沒有任何機(jī)制能防止用戶代碼引發(fā)不適當(dāng)?shù)腻e(cuò)誤。

內(nèi)置異常類可以被子類化以定義新的異常;鼓勵(lì)程序員從 Exception 類或它的某個(gè)子類而不是從 BaseException 來派生新的異常。 關(guān)于定義異常的更多信息可以在 Python 教程的 用戶自定義異常 部分查看。

當(dāng)在 except 或 finally 子句中引發(fā)(或重新引發(fā))異常時(shí),__context__ 會(huì)被自動(dòng)設(shè)為所捕獲的最后一個(gè)異常;如果新的異常未被處理,則最終顯示的回溯信息將包括原始的異常和最后的異常。

當(dāng)引發(fā)一個(gè)新的異常(而不是簡(jiǎn)單地使用 raise 來重新引發(fā)當(dāng)前在處理的異常)時(shí),隱式的異常上下文可以通過使用帶有 raise 的 from 來補(bǔ)充一個(gè)顯式的原因:

raise new_exc from original_exc

跟在 from 之后的表達(dá)式必須為一個(gè)異?;?None。 它將在所引發(fā)的異常上被設(shè)置為 cause__。 設(shè)置 __cause 還會(huì)隱式地將 suppress_context 屬性設(shè)為 True,這樣使用 raise new_exc from None 可以有效地將舊異常替換為新異常來顯示其目的 (例如將 KeyError 轉(zhuǎn)換為 AttributeError),同時(shí)讓舊異常在 context 中保持可用狀態(tài)以便在調(diào)試時(shí)進(jìn)行內(nèi)省。

除了異常本身的回溯以外,默認(rèn)的回溯還會(huì)顯示這些串連的異常。 cause 中的顯式串連異常如果存在將總是顯示。 context 中的隱式串連異常僅在 cause 為 None 并且 suppress_context 為假值時(shí)顯示。

不論在哪種情況下,異常本身總會(huì)在任何串連異常之后顯示,以便回溯的最后一行總是顯示所引發(fā)的最后一個(gè)異常。

基類

下列異常主要被用作其他異常的基類。

exception BaseException
所有內(nèi)置異常的基類。 它不應(yīng)該被用戶自定義類直接繼承 (這種情況請(qǐng)使用 Exception)。 如果在此類的實(shí)例上調(diào)用 str(),則會(huì)返回實(shí)例的參數(shù)表示,或者當(dāng)沒有參數(shù)時(shí)返回空字符串。
args
    傳給異常構(gòu)造器的參數(shù)元組。 某些內(nèi)置異常 (例如 OSError) 接受特定數(shù)量的參數(shù)并賦予此元組中的元素特殊的含義,而其他異常通常只接受一個(gè)給出錯(cuò)誤信息的多帶帶字符串。
with_traceback(tb)
    此方法將 tb 設(shè)為異常的新回溯信息并返回該異常對(duì)象。 它通常以如下的形式在異常處理程序中使用:
        try:
            ...
        except SomeException:
            tb = sys.exc_info()[2]
            raise OtherException(...).with_traceback(tb)
exception Exception
所有內(nèi)置的非系統(tǒng)退出類異常都派生自此類。 所有用戶自定義異常也應(yīng)當(dāng)派生自此類。
exception ArithmeticError
此基類用于派生針對(duì)各種算術(shù)類錯(cuò)誤而引發(fā)的內(nèi)置異常: OverflowError, ZeroDivisionError, FloatingPointError。
exception BufferError
當(dāng)與 緩沖區(qū) 相關(guān)的操作無(wú)法執(zhí)行時(shí)將被引發(fā)。
exception LookupError
此基類用于派生當(dāng)映射或序列所使用的鍵或索引無(wú)效時(shí)引發(fā)的異常: IndexError, KeyError。 這可以通過 codecs.lookup() 來直接引發(fā)。
具體異常

以下異常屬于經(jīng)常被引發(fā)的異常。

exception AssertionError
當(dāng) assert 語(yǔ)句失敗時(shí)將被引發(fā)。
exception AttributeError
當(dāng)屬性引用 (參見 屬性引用) 或賦值失敗時(shí)將被引發(fā)。 (當(dāng)一個(gè)對(duì)象根本不支持屬性引用或?qū)傩再x值時(shí)則將引發(fā) TypeError。)
exception EOFError
當(dāng) input() 函數(shù)未讀取任何數(shù)據(jù)即達(dá)到文件結(jié)束條件 (EOF) 時(shí)將被引發(fā)。 (另外,io.IOBase.read() 和 io.IOBase.readline() 方法在遇到 EOF 則將返回一個(gè)空字符串。)
exception FloatingPointError
目前未被使用。
exception GeneratorExit
當(dāng)一個(gè) generator 或 coroutine 被關(guān)閉時(shí)將被引發(fā);參見 generator.close() 和 coroutine.close()。 它直接繼承自 BaseException 而不是 Exception,因?yàn)閺募夹g(shù)上來說它并不是一個(gè)錯(cuò)誤。
exception ImportError
當(dāng) import 語(yǔ)句嘗試加載模塊遇到麻煩時(shí)將被引發(fā)。 并且當(dāng) from ... import 中的 "from list" 存在無(wú)法找到的名稱時(shí)也會(huì)被引發(fā)。

name 與 path 屬性可通過對(duì)構(gòu)造器使用僅關(guān)鍵字參數(shù)來設(shè)定。 設(shè)定后它們將分別表示被嘗試導(dǎo)入的模塊名稱與觸發(fā)異常的任意文件所在路徑。

在 3.3 版更改: 添加了 name 與 path 屬性。
exception ModuleNotFoundError
ImportError 的子類,當(dāng)一個(gè)模塊無(wú)法被定位時(shí)將由 import 引發(fā)。 當(dāng)在 sys.modules 中找到 None 時(shí)也會(huì)被引發(fā)。

3.6 新版功能.
exception IndexError
當(dāng)序列抽取超出范圍時(shí)將被引發(fā)。 (切片索引會(huì)被靜默截短到允許的范圍;如果指定索引不是整數(shù)則 TypeError 會(huì)被引發(fā)。)
exception KeyError
當(dāng)在現(xiàn)有鍵集合中找不到指定的映射(字典)鍵時(shí)將被引發(fā)。
exception KeyboardInterrupt
當(dāng)用戶按下中斷鍵 (通常為 Control-C 或 Delete) 時(shí)將被引發(fā)。 在執(zhí)行期間,會(huì)定期檢測(cè)中斷信號(hào)。 該異常繼承自 BaseException 以確保不會(huì)被處理 Exception 的代碼意外捕獲,這樣可以避免退出解釋器。
exception MemoryError
當(dāng)一個(gè)操作耗盡內(nèi)存但情況仍可(通過刪除一些對(duì)象)進(jìn)行挽救時(shí)將被引發(fā)。 關(guān)聯(lián)的值是一個(gè)字符串,指明是哪種(內(nèi)部)操作耗盡了內(nèi)存。 請(qǐng)注意由于底層的內(nèi)存管理架構(gòu)(C 的 malloc() 函數(shù)),解釋器也許并不總是能夠從這種情況下完全恢復(fù);但它畢竟可以引發(fā)一個(gè)異常,這樣就能打印出?;厮菪畔ⅲ员阏页鰧?dǎo)致問題的失控程序。
exception NameError
當(dāng)某個(gè)局部或全局名稱未找到時(shí)將被引發(fā)。 此異常僅用于非限定名稱。 關(guān)聯(lián)的值是一條錯(cuò)誤信息,其中包含未找到的名稱。
exception NotImplementedError
此異常派生自 RuntimeError。 在用戶自定義的基類中,抽象方法應(yīng)當(dāng)在其要求所派生類重載該方法,或是在其要求所開發(fā)的類提示具體實(shí)現(xiàn)尚待添加時(shí)引發(fā)此異常。
注解

它不應(yīng)當(dāng)用來表示一個(gè)運(yùn)算符或方法根本不能被支持 -- 在此情況下應(yīng)當(dāng)讓特定運(yùn)算符 / 方法保持未定義,或者在子類中將其設(shè)為 None。

注解

NotImplementedError 和 NotImplemented 不可互換,即使它們有相似的名稱和用途。 請(qǐng)參閱 NotImplemented 了解有關(guān)何時(shí)使用它們的詳細(xì)說明。

exception OSError([arg]) exception OSError(errno, strerror[, filename[, winerror[, filename2]]])
此異常在一個(gè)系統(tǒng)函數(shù)返回系統(tǒng)相關(guān)的錯(cuò)誤時(shí)將被引發(fā),此類錯(cuò)誤包括 I/O 操作失敗例如 "文件未找到" 或 "磁盤已滿" 等(不包括非法參數(shù)類型或其他偶然性錯(cuò)誤)。

構(gòu)造器的第二種形式可設(shè)置如下所述的相應(yīng)屬性。 如果未指定這些屬性則默認(rèn)為 None。 為了能向下兼容,如果傳入了三個(gè)參數(shù),則 args 屬性將僅包含由前兩個(gè)構(gòu)造器參數(shù)組成的 2 元組。

構(gòu)造器實(shí)際返回的往往是 OSError 的某個(gè)子類,如下文 OS exceptions 中所描述的。 具體的子類取決于最終的 errno 值。 此行為僅在直接或通過別名來構(gòu)造 OSError 時(shí)發(fā)生,并且在子類化時(shí)不會(huì)被繼承。
errno
    來自于 C 變量 errno 的數(shù)字錯(cuò)誤碼。
winerror
    在 Windows 下,此參數(shù)將給出原生的 Windows 錯(cuò)誤碼。 而 errno 屬性將是該原生錯(cuò)誤碼在 POSIX 平臺(tái)下的近似轉(zhuǎn)換形式。

    在 Windows 下,如果 winerror 構(gòu)造器參數(shù)是一個(gè)整數(shù),則 errno 屬性會(huì)根據(jù) Windows 錯(cuò)誤碼來確定,而 errno 參數(shù)會(huì)被忽略。 在其他平臺(tái)上,winerror 參數(shù)會(huì)被忽略,并且 winerror 屬性將不存在。
strerror
    操作系統(tǒng)所提供的相應(yīng)錯(cuò)誤信息。 它在 POSIX 平臺(tái)中由 C 函數(shù) perror() 來格式化,在 Windows 中則是由 FormatMessage()。

### filename
### filename2

    對(duì)于與文件系統(tǒng)路徑有關(guān) (例如 open() 或 os.unlink()) 的異常,filename 是傳給函數(shù)的文件名。 對(duì)于涉及兩個(gè)文件系統(tǒng)路徑的函數(shù) (例如 os.rename()),filename2 將是傳給函數(shù)的第二個(gè)文件名。

在 3.3 版更改: EnvironmentError, IOError, WindowsError, socket.error, select.error 與 mmap.error 已被合并到 OSError,構(gòu)造器可能返回其中一個(gè)子類。

在 3.4 版更改: filename 屬性現(xiàn)在將是傳給函數(shù)的原始文件名,而不是經(jīng)過編碼或基于文件系統(tǒng)編碼進(jìn)行解碼之后的名稱。 此外還添加了 filename2 構(gòu)造器參數(shù)和屬性。
exception OverflowError
當(dāng)算術(shù)運(yùn)算的結(jié)果大到無(wú)法表示時(shí)將被引發(fā)。 這對(duì)整數(shù)來說不可能發(fā)生(寧可引發(fā) MemoryError 也不會(huì)放棄嘗試)。 但是出于歷史原因,有時(shí)也會(huì)在整數(shù)超出要求范圍的情況下引發(fā) OverflowError。 因?yàn)樵?C 中缺少對(duì)浮點(diǎn)異常處理的標(biāo)準(zhǔn)化,大多數(shù)浮點(diǎn)運(yùn)算都不會(huì)做檢查。
exception RecursionError
此異常派生自 RuntimeError。 它會(huì)在解釋器檢測(cè)發(fā)現(xiàn)超過最大遞歸深度 (參見 sys.getrecursionlimit()) 時(shí)被引發(fā)。

3.5 新版功能: 在此之前將只引發(fā) RuntimeError。
exception ReferenceError
此異常將在使用 weakref.proxy() 函數(shù)所創(chuàng)建的弱引用來訪問該引用的某個(gè)已被作為垃圾回收的屬性時(shí)被引發(fā)。 有關(guān)弱引用的更多信息請(qǐng)參閱 weakref 模塊。
exception RuntimeError
當(dāng)檢測(cè)到一個(gè)不歸屬于任何其他類別的錯(cuò)誤時(shí)將被引發(fā)。 關(guān)聯(lián)的值是一個(gè)指明究竟發(fā)生了什么問題的字符串。
exception StopIteration
由內(nèi)置函數(shù) next() 和 iterator 的 __next__() 方法所引發(fā),用來表示該迭代器不能產(chǎn)生下一項(xiàng)。

該異常對(duì)象只有一個(gè)屬性 value,它在構(gòu)造該異常時(shí)作為參數(shù)給出,默認(rèn)值為 None。

當(dāng)一個(gè) generator 或 coroutine 函數(shù)返回時(shí),將引發(fā)一個(gè)新的 StopIteration 實(shí)例,函數(shù)返回的值將被用作異常構(gòu)造器的 value 形參。

如果某個(gè)生成器代碼直接或間接地引發(fā)了 StopIteration,它會(huì)被轉(zhuǎn)換為 RuntimeError (并將 StopIteration 保留為導(dǎo)致新異常的原因)。

在 3.3 版更改: 添加了 value 屬性及其被生成器函數(shù)用作返回值的功能。

在 3.5 版更改: 引入了通過 from __future__ import generator_stop 來實(shí)現(xiàn) RuntimeError 轉(zhuǎn)換,參見 PEP 479。

在 3.7 版更改: 默認(rèn)對(duì)所有代碼啟用 PEP 479: 在生成器中引發(fā)的 StopIteration 錯(cuò)誤將被轉(zhuǎn)換為 RuntimeError。
exception StopAsyncIteration
必須由一個(gè) asynchronous iterator 對(duì)象的 __anext__() 方法來引發(fā)以停止迭代操作。

3.5 新版功能.
exception SyntaxError
當(dāng)解析器遇到語(yǔ)法錯(cuò)誤時(shí)將被引發(fā)。 這可以發(fā)生在 import 語(yǔ)句,對(duì)內(nèi)置函數(shù) exec() 或 eval() 的調(diào)用,或者讀取原始腳本或標(biāo)準(zhǔn)輸入(也包括交互模式)的時(shí)候。

該類的實(shí)例包含有屬性 filename, lineno, offset 和 text 用于方便地訪問相應(yīng)的詳細(xì)信息。 異常實(shí)例的 str() 僅返回消息文本。
exception IndentationError
與不正確的縮進(jìn)相關(guān)的語(yǔ)法錯(cuò)誤的基類。 這是 SyntaxError 的一個(gè)子類。
exception TabError
當(dāng)縮進(jìn)包含對(duì)制表符和空格符不一致的使用時(shí)將被引發(fā)。 這是 IndentationError 的一個(gè)子類。
exception SystemError
當(dāng)解釋器發(fā)現(xiàn)內(nèi)部錯(cuò)誤,但情況看起來尚未嚴(yán)重到要放棄所有希望時(shí)將被引發(fā)。 關(guān)聯(lián)的值是一個(gè)指明發(fā)生了什么問題的字符串(表示為低層級(jí)的符號(hào))。

你應(yīng)當(dāng)將此問題報(bào)告給你所用 Python 解釋器的作者或維護(hù)人員。 請(qǐng)確認(rèn)報(bào)告 Python 解釋器的版本號(hào) (sys.version; 它也會(huì)在交互式 Python 會(huì)話開始時(shí)被打印出來),具體的錯(cuò)誤消息(異常所關(guān)聯(lián)的值)以及可能觸發(fā)該錯(cuò)誤的程序源碼。
exception SystemExit
此異常由 sys.exit() 函數(shù)引發(fā)。 它繼承自 BaseException 而不是 Exception 以確保不會(huì)被處理 Exception 的代碼意外捕獲。 這允許此異常正確地向上傳播并導(dǎo)致解釋器退出。 如果它未被處理,則 Python 解釋器就將退出;不會(huì)打印任何?;厮菪畔?。 構(gòu)造器接受的可選參數(shù)與傳遞給 sys.exit() 的相同。 如果該值為一個(gè)整數(shù),則它指明系統(tǒng)退出狀態(tài)碼(會(huì)傳遞給 C 的 exit() 函數(shù));如果該值為 None,則退出狀態(tài)碼為零;如果該值為其他類型(例如字符串),則會(huì)打印對(duì)象的值并將退出狀態(tài)碼設(shè)為一。

對(duì) sys.exit() 的調(diào)用會(huì)被轉(zhuǎn)換為一個(gè)異常以便能執(zhí)行清理處理程序 (try 語(yǔ)句的 finally 子句),并且使得調(diào)試器可以執(zhí)行一段腳本而不必冒失去控制的風(fēng)險(xiǎn)。 如果絕對(duì)確實(shí)地需要立即退出(例如在調(diào)用 os.fork() 之后的子進(jìn)程中)則可使用 os._exit().
code

傳給構(gòu)造器的退出狀態(tài)碼或錯(cuò)誤信息(默認(rèn)為 None。)

exception TypeError

當(dāng)一個(gè)操作或函數(shù)被應(yīng)用于類型不適當(dāng)?shù)膶?duì)象時(shí)將被引發(fā)。 關(guān)聯(lián)的值是一個(gè)字符串,給出有關(guān)類型不匹配的詳情。

此異??梢杂捎脩舸a引發(fā),以表明嘗試對(duì)某個(gè)對(duì)象進(jìn)行的操作不受支持也不應(yīng)當(dāng)受支持。 如果某個(gè)對(duì)象應(yīng)當(dāng)支持給定的操作但尚未提供相應(yīng)的實(shí)現(xiàn),所要引發(fā)的適當(dāng)異常應(yīng)為 NotImplementedError。

傳入?yún)?shù)的類型錯(cuò)誤 (例如在要求 int 時(shí)卻傳入了 list) 應(yīng)當(dāng)導(dǎo)致 TypeError,但傳入?yún)?shù)的值錯(cuò)誤 (例如傳入要求范圍之外的數(shù)值) 則應(yīng)當(dāng)導(dǎo)致 ValueError。

exception UnboundLocalError

當(dāng)在函數(shù)或方法中對(duì)某個(gè)局部變量進(jìn)行引用,但該變量并未綁定任何值時(shí)將被引發(fā)。 此異常是 NameError 的一個(gè)子類。

exception UnicodeError

當(dāng)發(fā)生與 Unicode 相關(guān)的編碼或解碼錯(cuò)誤時(shí)將被引發(fā)。 此異常是 ValueError 的一個(gè)子類。

UnicodeError 具有一些描述編碼或解碼錯(cuò)誤的屬性。 例如 err.object[err.start:err.end] 會(huì)給出導(dǎo)致編解碼器失敗的特定無(wú)效輸入。

encoding
    引發(fā)錯(cuò)誤的編碼名稱。
reason
    描述特定編解碼器錯(cuò)誤的字符串。
object
    編解碼器試圖要編碼或解碼的對(duì)象。
start
    object 中無(wú)效數(shù)據(jù)的開始位置索引。
end
    object 中無(wú)效數(shù)據(jù)的末尾位置索引(不含)。
exception UnicodeEncodeError
當(dāng)在編碼過程中發(fā)生與 Unicode 相關(guān)的錯(cuò)誤時(shí)將被引發(fā)。 此異常是 UnicodeError 的一個(gè)子類。
exception UnicodeDecodeError
當(dāng)在解碼過程中發(fā)生與 Unicode 相關(guān)的錯(cuò)誤時(shí)將被引發(fā)。 此異常是 UnicodeError 的一個(gè)子類。
exception UnicodeTranslateError
在轉(zhuǎn)寫過程中發(fā)生與 Unicode 相關(guān)的錯(cuò)誤時(shí)將被引發(fā)。 此異常是 UnicodeError 的一個(gè)子類。
exception ValueError

當(dāng)操作或函數(shù)接收到具有正確類型但值不適合的參數(shù),并且情況不能用更精確的異常例如 IndexError 來描述時(shí)將被引發(fā)。

exception ZeroDivisionError
當(dāng)除法或取余運(yùn)算的第二個(gè)參數(shù)為零時(shí)將被引發(fā)。 關(guān)聯(lián)的值是一個(gè)字符串,指明操作數(shù)和運(yùn)算的類型。

下列異常被保留以與之前的版本相兼容;從 Python 3.3 開始,它們都是 OSError 的別名。

exception EnvironmentError exception IOError exception WindowsError
限在 Windows 中可用。
OS 異常

下列異常均為 OSError 的子類,它們將根據(jù)系統(tǒng)錯(cuò)誤代碼被引發(fā)。

exception BlockingIOError
當(dāng)一個(gè)操作會(huì)被某個(gè)設(shè)置為非阻塞操作的對(duì)象(例如套接字)所阻塞時(shí)將被引發(fā)。 對(duì)應(yīng)于 errno EAGAIN, EALREADY, EWOULDBLOCK 和 EINPROGRESS。

除了 OSError 已有的屬性,BlockingIOError 還有一個(gè)額外屬性:

characters_written

一個(gè)整數(shù),表示在被阻塞前已寫入到流的字符數(shù)。 當(dāng)使用來自 io 模塊的帶緩沖 I/O 類時(shí)此屬性可用。

exception ChildProcessError
當(dāng)一個(gè)子進(jìn)程上的操作失敗時(shí)將被引發(fā)。 對(duì)應(yīng)于 errno ECHILD。
exception ConnectionError
與連接相關(guān)問題的基類。

其子類有 BrokenPipeError, ConnectionAbortedError, ConnectionRefusedError 和 ConnectionResetError。
exception BrokenPipeError
ConnectionError 的子類,當(dāng)試圖寫入另一端已被關(guān)閉的管道,或是試圖寫入已關(guān)閉寫入的套接字時(shí)將被引發(fā)。 對(duì)應(yīng)于 errno EPIPE 和 ESHUTDOWN。
exception ConnectionAbortedError
ConnectionError 的子類,當(dāng)連接嘗試被對(duì)端中止時(shí)將被引發(fā)。 對(duì)應(yīng)于 errno ECONNABORTED。
exception ConnectionRefusedError
ConnectionError 的子類,當(dāng)連接嘗試被對(duì)端拒絕時(shí)將被引發(fā)。 對(duì)應(yīng)于 errno ECONNREFUSED。
exception ConnectionResetError
ConnectionError 的子類,當(dāng)連接被對(duì)端重置時(shí)將被引發(fā)。 對(duì)應(yīng)于 errno ECONNRESET。
exception FileExistsError
當(dāng)試圖創(chuàng)建一個(gè)已存在的文件或目錄時(shí)將被引發(fā)。 對(duì)應(yīng)于 errno EEXIST。
exception FileNotFoundError
當(dāng)所請(qǐng)求的文件或目錄不存在時(shí)將被引發(fā)。 對(duì)應(yīng)于 errno ENOENT。
exception InterruptedError
當(dāng)系統(tǒng)調(diào)用被輸入信號(hào)中斷時(shí)將被引發(fā)。 對(duì)應(yīng)于 errno EINTR。

在 3.5 版更改: 當(dāng)系統(tǒng)調(diào)用被某個(gè)信號(hào)中斷時(shí),Python 現(xiàn)在會(huì)重試系統(tǒng)調(diào)用,除非該信號(hào)的處理程序引發(fā)了其它異常 (原理參見 PEP 475) 而不是引發(fā) InterruptedError。
exception IsADirectoryError
當(dāng)請(qǐng)求對(duì)一個(gè)目錄執(zhí)行文件操作 (例如 os.remove()) 將被引發(fā)。 對(duì)應(yīng)于 errno EISDIR。
exception NotADirectoryError
當(dāng)請(qǐng)求對(duì)一個(gè)非目錄對(duì)象執(zhí)行目錄操作 (例如 os.listdir()) 時(shí)將被引發(fā)。 對(duì)應(yīng)于 errno ENOTDIR。
exception PermissionError
當(dāng)在沒有足夠操作權(quán)限的情況下試圖執(zhí)行某個(gè)操作時(shí)將被引發(fā) —— 例如缺少文件系統(tǒng)權(quán)限。 對(duì)應(yīng)于 errno EACCES 和 EPERM。
exception ProcessLookupError
當(dāng)給定的進(jìn)程不存在時(shí)將被引發(fā)。 對(duì)應(yīng)于 errno ESRCH。
exception TimeoutError
當(dāng)一個(gè)系統(tǒng)函數(shù)發(fā)生系統(tǒng)級(jí)超時(shí)的情況下將被引發(fā)。 對(duì)應(yīng)于 errno ETIMEDOUT。

3.3 新版功能: 添加了以上所有 OSError 的子類。

參見

PEP 3151 - 重寫 OS 和 IO 異常的層次結(jié)構(gòu)

警告

下列異常被用作警告類別;請(qǐng)參閱 警告類別 文檔了解詳情。

exception Warning
警告類別的基類。
exception UserWarning
用戶代碼所產(chǎn)生警告的基類。
exception DeprecationWarning
如果所發(fā)出的警告是針對(duì)其他 Python 開發(fā)者的,則以此作為與已棄用特性相關(guān)警告的基類。
exception PendingDeprecationWarning
對(duì)于已過時(shí)并預(yù)計(jì)在未來?xiàng)売?,但目前尚未棄用的特性相關(guān)警告的基類。

這個(gè)類很少被使用,因?yàn)獒槍?duì)未來可能的棄用發(fā)出警告的做法并不常見,而針對(duì)當(dāng)前已有的棄用則推薦使用 DeprecationWarning。
exception SyntaxWarning
與模糊的語(yǔ)法相關(guān)的警告的基類。
exception RuntimeWarning
與模糊的運(yùn)行時(shí)行為相關(guān)的警告的基類。
exception FutureWarning
如果所發(fā)出的警告是針對(duì)以 Python 所編寫應(yīng)用的最終用戶的,則以此作為與已棄用特性相關(guān)警告的基類。
exception ImportWarning
與在模塊導(dǎo)入中可能的錯(cuò)誤相關(guān)的警告的基類。
exception UnicodeWarning
與 Unicode 相關(guān)的警告的基類。
exception BytesWarning
與 bytes 和 bytearray 相關(guān)的警告的基類。
exception ResourceWarning
與資源使用相關(guān)的警告的基類。 會(huì)被默認(rèn)的警告過濾器忽略。

3.2 新版功能.

異常層次結(jié)構(gòu)

內(nèi)置異常的類層級(jí)結(jié)構(gòu)如下:

上一篇文章:Python標(biāo)準(zhǔn)庫(kù)---16、內(nèi)置類型:上下文管理器類型、其他、特殊屬性
下一篇文章:Python標(biāo)準(zhǔn)庫(kù)---18、文本處理服務(wù):string 常見的字符串操作

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/44007.html

相關(guān)文章

  • Python標(biāo)準(zhǔn)庫(kù)---16、內(nèi)置類型:上下文管理器類型、其他、特殊屬性

    摘要:退出運(yùn)行時(shí)上下文并返回一個(gè)布爾值旗標(biāo)來表明所發(fā)生的任何異常是否應(yīng)當(dāng)被屏蔽。除了實(shí)現(xiàn)上下文管理協(xié)議以外,不同類型不會(huì)被特殊處理。其中一些并不會(huì)被內(nèi)置函數(shù)所列出。 上一篇文章:Python標(biāo)準(zhǔn)庫(kù)---15、內(nèi)置類型:集合類型、映射類型下一篇文章:Python標(biāo)準(zhǔn)庫(kù)---17、內(nèi)置異常 上下文管理器類型 Python 的 with 語(yǔ)句支持通過上下文管理器所定義的運(yùn)行時(shí)上下文這一概念。 此...

    zhisheng 評(píng)論0 收藏0
  • Python標(biāo)準(zhǔn)庫(kù)---2、內(nèi)置函數(shù)(D-E-F)

    摘要:如果對(duì)象允許,該函數(shù)將刪除指定的屬性。返回值為表達(dá)式求值的結(jié)果。語(yǔ)法錯(cuò)誤將作為異常被報(bào)告。該函數(shù)返回值是。例如數(shù)字類型描述了浮點(diǎn)類型。將轉(zhuǎn)換為控制的格式化表示。上一篇文章標(biāo)準(zhǔn)庫(kù)內(nèi)置函數(shù)下一篇文章標(biāo)準(zhǔn)庫(kù)內(nèi)置函數(shù) 上一篇文章:Python標(biāo)準(zhǔn)庫(kù)---1、內(nèi)置函數(shù)(A-B-C)下一篇文章:Python標(biāo)準(zhǔn)庫(kù)---3、內(nèi)置函數(shù)(G-H-I-J-K) 內(nèi)置函數(shù): showImg(https:/...

    Fourierr 評(píng)論0 收藏0
  • Python標(biāo)準(zhǔn)庫(kù)---0、簡(jiǎn)介

    摘要:下一篇文章標(biāo)準(zhǔn)庫(kù)內(nèi)置函數(shù)標(biāo)準(zhǔn)庫(kù)語(yǔ)言參考描述了語(yǔ)言的具體語(yǔ)法和語(yǔ)義,這份庫(kù)參考則介紹了與一同發(fā)行的標(biāo)準(zhǔn)庫(kù)。這個(gè)庫(kù)也包含了內(nèi)置函數(shù)和異常不需要語(yǔ)句就可以在所有代碼中使用的對(duì)象。下一篇文章標(biāo)準(zhǔn)庫(kù)內(nèi)置函數(shù) 下一篇文章:Python標(biāo)準(zhǔn)庫(kù)---1、內(nèi)置函數(shù) Python 標(biāo)準(zhǔn)庫(kù) Python 語(yǔ)言參考 描述了 Python 語(yǔ)言的具體語(yǔ)法和語(yǔ)義,這份庫(kù)參考則介紹了與 Python 一同發(fā)行的標(biāo)...

    mo0n1andin 評(píng)論0 收藏0
  • Python標(biāo)準(zhǔn)庫(kù)---3、內(nèi)置函數(shù)(G-H-I-J-K)

    摘要:上一篇文章標(biāo)準(zhǔn)庫(kù)內(nèi)置函數(shù)下一篇文章標(biāo)準(zhǔn)庫(kù)內(nèi)置函數(shù)內(nèi)置函數(shù)返回對(duì)象命名屬性的值。返回表示當(dāng)前全局符號(hào)表的字典。例如,從二進(jìn)制數(shù)據(jù)庫(kù)文件中讀取固定寬度的塊,直至到達(dá)文件的末尾上一篇文章標(biāo)準(zhǔn)庫(kù)內(nèi)置函數(shù)下一篇文章標(biāo)準(zhǔn)庫(kù)內(nèi)置函數(shù) 上一篇文章:Python標(biāo)準(zhǔn)庫(kù)---2、內(nèi)置函數(shù)(D-E-F)下一篇文章:Python標(biāo)準(zhǔn)庫(kù)---4、內(nèi)置函數(shù)(L-M-N-O) 內(nèi)置函數(shù): showImg(http...

    gself 評(píng)論0 收藏0
  • Python標(biāo)準(zhǔn)庫(kù)---8、內(nèi)置常量

    摘要:上一篇文章標(biāo)準(zhǔn)庫(kù)內(nèi)置函數(shù)下一篇文章標(biāo)準(zhǔn)庫(kù)內(nèi)置類型邏輯值檢測(cè)布爾運(yùn)算比較內(nèi)置常量有少數(shù)的常量存在于內(nèi)置命名空間中。給賦值是非法的并會(huì)引發(fā)。如果所有嘗試都返回,則解釋器將引發(fā)適當(dāng)?shù)漠惓?。如果沒有以選項(xiàng)啟動(dòng),則此常量為真值。 上一篇文章:Python標(biāo)準(zhǔn)庫(kù)---7、內(nèi)置函數(shù)(V-W-X-Y-Z)下一篇文章:Python標(biāo)準(zhǔn)庫(kù)---9、內(nèi)置類型:邏輯值檢測(cè)、布爾運(yùn)算、比較 內(nèi)置常量 有少數(shù)的...

    gplane 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<