python 關於異常,你需要知道什麼。

2021-09-28 19:38:58 字數 1712 閱讀 2405

摘要

異常的完整語法

try

:# 提示使用者輸入乙個整數

num =

int(

input

("請輸入乙個整數:"))

# 使用數字8除以這個整數並且輸出

result =

8/ num

print

(result)

except valueerror:

# 捕獲特定異常(也可以繼續新增 as b)

print

("請輸入正確的整數"

)print

("可以繼續執行的**"

)# 可以繼續執行的**

except exception as a:

# 捕獲未知異常賦值給a

print

("未知錯誤%s"

% a)

print

("可以繼續執行的**"

)# 可以繼續執行的**

else

:# 嘗試執行的**正確時會執行的**

print

("這個語法是正確的"

)finally

:# 不管怎樣都會執行的**

print

("不管怎樣都會執行的**"

)

主動丟擲異常
def

input_password()

: pwd =

input

("請輸入密碼:")if

len(pwd)

<=8:

ex = exception(

"密碼長度不夠"

)raise ex

print

("raise之後的**"

)return pwd

try:

print

(input_password())

except exception as a:

print

(a)finally

:print

("程式終止,請再次啟動"

)

自定義異常類
# 通過建立乙個新的異常類,程式可以命名它們自己的異常。異常應該是典型的繼承自exception類,通過直接或間接的方式。

# 以下為與runtimeerror相關的例項,例項中建立了乙個類,基類為runtimeerror,用於在異常觸發時輸出更多的資訊。

# 在try語句塊中,使用者自定義的異常後執行except塊語句,變數 e 是用於建立networkerror類的例項。

class

networkerror

(runtimeerror)

:# 繼承一般執行錯誤的類

def__init__

(self, cq)

: self.cq = cq

# print(self.cq)

# 在你定義以上類後,你可以觸發該異常,如下所示:

try:

raise networkerror(

"錯誤"

)# 直接丟擲異常

# 等於except exception as e:

except networkerror as e:

# 捕獲異常

print

(e)# 等於print(e.cq)

關於raise from語句

補充,主動丟擲異常的應用場景:

關於快取你需要知道的

作後端開發的同學,快取是必備技能。這是你不需要花費太多的精力就能顯著提公升服務效能的靈丹妙藥。前提是你得知道如何使用它,這樣才能夠最大限度發揮它的功效,並抑制其 本文將介紹最如何正確的新增和更新快取。這部分將介紹在開始加快取之前我們必須要做的事情。這步非常重要,如果沒弄好,很有可能加了快取反而不如不...

關於棧,你需要知道這些

分別用四個字描述棧和佇列 棧 後進先出 佇列 先進先出 棧 一種特殊的線性表,其只允許在固定的一端進行插入和刪除元素操作。進行資料插入和刪除操作的一端稱為棧頂,另一端稱為棧底。棧中的資料元素遵守後進先出lifo last in first out 的原則。它的三個核心操作 入棧 棧的插入操作叫做進棧...

(1)關於ROS 你需要知道的

ros的版本名稱是按字母順序e f g h i j k l排列的,electric fuerte groovy hydro indigo jade kinetic lunar.ros的fuerte和groovy版本中會有ros create package和rosmake等命令,而hydro及以後都...