後浪Python 異常捕獲

2021-10-23 20:09:26 字數 1981 閱讀 2010

程式在執行過程中因為遇到錯誤的語法導致程式奔潰

通過異常捕獲的程式讓本身異常的**能夠繼續執行

語法一try:

**段1

except:

**段2

說明:try、except - 關鍵字, 固定寫法

**段1 - 需要捕獲異常的**段

**段2 - 捕獲異常後會執行的**

執行過程:

先執行**段1, 如果執行過程**現了異常, 程式不崩潰, 直接執行**段2, 然後接著執行**段2, 然後接著執行後續其他語句

注意: 此方法捕獲**段1中所有的異常

語法二

try:

**段1

except 異常型別:

**段2

說明:異常型別 - 類,必須是exception類的子類(系統提供的錯誤型別: keyerror、indexerror、typeerror或者自定義錯誤型別)

執行過程:

先執行**段1, 執行過程中如果出現異常就判斷出現的異常型別和except後面的異常型別是否相等, 如果相等程式不報錯,直接執行**段2, 否則程式直接崩潰。

注意: 此方法, 捕獲**段1中的指定異常

語法三

try:

**段1

except (異常型別1, 異常型別2,…):

**段2

注意:同時捕獲**段1中的多種異常, 對不同的異常的處理相同

語法四

try:

**段1

except 異常型別1:

**段11

except 異常型別2:

**段22

注意: 同時捕獲**段1中的多種異常, 針對不同的異常做不同的處理

上面的4種捕獲異常的結構的最後都可以新增乙個finally語句

比如:try:

**段1

except:

**段2

finally:

**段3

不管需要捕獲異常的**段1出現了什麼情況, finally後面的**段3都會執行

繼承就是讓子類直接擁有父類的屬性和方法

子類 - 繼承者

父類 - 被繼承者

注意:python中所有的類都是直接或者間接繼承自object類(object是python的基類)

class 類名(父類):

類的內容

注意:定義類的時候如果沒有寫父類, 父類就是object

新增方法和類屬性 - 直接在子類中新增

新增物件屬性

子類是通過繼承父類的__init__方法來繼承父類的物件屬性

呼叫當前類的父類的__init__方法

super().init()

注意:子類是通過繼承父類的__init__方法來繼承父類的物件屬性,如果要在子類中新增物件屬性, 需要在子類的__init__方法中通過super()去呼叫父類的__init__方法

通過類或者物件呼叫方法的時候, 先看當前類中有沒有這個方法, 如果有直接呼叫; 沒有就看父親中有沒有這個方法,

如果有呼叫父類的方法; 如果沒有就看父類的父類有沒有,…以此類推,如果找到object都沒有這個方法才報錯

主動讓程式崩潰

語法:

raise 異常型別

說明:

raise - 關鍵字, 固定寫法

異常型別 - 類, 必須是exception的子類

定義乙個類, 繼承exception

注意:__str__的返回值必須是字串,在異常型別中返回值就是丟擲異常的時候的提示資訊

python異常捕獲 如何捕獲Python中的異常

python 提供了try except語句捕獲並處理異常,該異常處理語句的基本語法結構如下 try 可能產生異常的 塊 except error1,error2,as e 處理異常的 塊1 except error3,error4,as e 處理異常的 塊2該格式中,括起來的部分可以使用,也可以省...

python異常捕獲

python的異常處理如c c 的結構一樣。python用try.except.c c 則用try.catch.並不難理解。在對具體錯誤的獲取則有點不同,主要是語法的差異上。c 在catch後可生成相應乙個異常的類,然後可通過類物件獲取相關的錯誤資訊。而python則不同,它在獲取錯誤資訊有點奇怪,...

Python捕獲異常

如果感覺 可能會出現異常,可以通過如下兩種方法捕獲異常。一 捕獲所以異常 try statement1 statement2 except exception,e print exception,e 二 通過trace模組檢視 import traceback try statement1 stat...