try:
這裡放可能出現異常的**
except 異常的型別:
當異常發生時並且與異常型別匹配
執行except中的**
注意:一旦try中**丟擲異常,後面的**全部不執行
基本語法:
print("之前的**")
try:
class
foo:
pass
f1 =foo()
f1.x
except
attributeerror:
print("
屬性不存在")
print("
之後的**
面對**段中可能有多種異常,單一異常並不能接住異常,所以可以使用多種異常處理的機制。
print("staring.....")
try:
#name
[-1]
pass
except
nameerror:
print("
名字找不到!")
except
indexerror:
print("
索引超出範圍")
上面的多種異常接受也可寫成:
print("staring.....")
try:
#name
[-1]
pass
except
(nameerror,indexerror):
print("
名字找不到! 或者 索引超出範圍")
同時異常也是個特殊的型別,那麼就有萬能異常型別exception或者baseexception 這也是一種基於oop的繼承和多型。
print("其他語法staring.....")
try:
#{}["aaa"]
#name
#[-1]
1/0except
exception:
print("
可能名字找不到! 可能所以超出範圍 可能除數為0")
print("
end.......
")
try:
#1/0
#[2]
pass
except
exception:
print("
丟擲異常")
else:#
當**沒有異常丟擲,才會執行
print("
**中沒有異常
")
tryfinally:主要用於**檢驗異常**的系統資源:
#1/0
#[2]
pass
except
exception:
print("
丟擲異常")
else:#
當**沒有異常丟擲,才會執行
print("
**中沒有異常")
finally
:
print("
無論是否有異常,都會執行
")
try: f = open(r"
d:\上海python全棧4期\day31\異常處理\1今日內容
","rt
",encoding="
utf-8")
f.read()
#f.write("123")
except
exception:
print("
發生異常了")
finally
:
print("
關閉檔案!")
f.close()
系統對異常的處理使用統一的異常處理流程
系統對異常的處理使用統一的異常處理流程。1 自定義異常型別。2 自定義錯誤 及錯誤資訊。3 對於可預知的異常由程式設計師在 中主動拋出自定義異常型別的異常,丟擲異常時需要指定錯誤 4 對於不可預知的異常 執行時異常 由springmvc統一捕獲exception型別的異常,由統一的異常捕獲類來解析 ...
C 異常處理 使用throw引發異常
c 提供了throw語句來引發異常。使用throw語句既可以引發系統異常,也可以引發自定義異常。使用throw語句丟擲異常的語法如下 throw exobject exobject 所要丟擲的異常物件,這個異常物件是派生自system.exception類的類物件。例項 如下 using syste...
C 異常處理 使用throw引發異常
c 提供了throw語句來引發異常。使用throw語句既可以引發系統異常,也可以引發自定義異常。使用throw語句丟擲異常的語法如下 throw exobject exobject 所要丟擲的異常物件,這個異常物件是派生自system.exception類的類物件。例項 如下 using syste...