摘要
異常的完整語法
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及以後都...