程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

23-python學習筆記之try...except(異常處理)

編輯:Python

文章目錄

  • 前言
    • 異常處理
  • 一、異常處理的使用
    • 多個異常
    • else
    • finally
    • 引發異常
  • 總結


前言


以下都是自己的一些學習筆記,可能有寫的不對的地方,還望各位大佬體諒和加以指正。


  • try 塊允許我們測試代碼塊以查找錯誤。
  • except 塊允許我們處理錯誤。
  • finally 塊允許我們執行代碼,無論 try 和 except 塊的結果如何。

異常處理

當我們調用 Python 並發生錯誤或異常時,通常會停止並生成錯誤消息。
可以使用 try 語句處理這些異常:

try 塊將生成異常,因為 x 未定義:

try:
print(x)
except:
print("An exception occurred") # An exception occurred

由於 try 塊引發錯誤,因此會執行 except 塊。
如果沒有 try 塊,程序將崩潰並引發錯誤:

該語句將引發錯誤,因為未定義 x:

print(x)

一、異常處理的使用

多個異常

我們可以根據需要定義任意數量的 exception 塊,例如,假如我們要為特殊類型的錯誤執行特殊代碼塊:

如果 try 塊引發 NameError,則打印一條消息,如果是其他錯誤則打印另一條消息:

try:
print(x)
except NameError:
print("Variable x is not defined")
except:
print("Something else went wrong")

else

如果沒有引發錯誤,那麼我們可以使用 else 關鍵字來定義要執行的代碼塊:

在本例中,try 塊不會生成任何錯誤:

try:
print("Hello")
except:
print("Something went wrong")
else:
print("Nothing went wrong")

finally

如果指定了 finally 塊,則無論 try 塊是否引發錯誤,都會執行 finally 塊。

try:
print(x)
except:
print("Something went wrong")
finally:
print("The 'try except' is finished")

這對於關閉對象並清理資源非常有用:
試圖打開並寫入不可寫的文件:

try:
f = open("demofile.txt")
f.write("Lorum Ipsum")
except:
print("Something went wrong when writing to the file")
finally:
f.close()

程序可以繼續,而且不會打開文件對象。

引發異常

作為 Python 開發者,我們可以選擇在條件發生時拋出異常。
如需拋出(引發)異常,請使用 raise 關鍵詞。

假如 x 小於 0,則引發異常並終止程序:

x = -1
if x < 0:
raise Exception("Sorry, no numbers below zero")

raise 關鍵字用於引發異常。

我們能夠定義所引發異常的類型、以及打印給用戶的文本。

如果 x 不是整數,則引發 TypeError:

x = "hello"
if not type(x) is int:
raise TypeError("Only integers are allowed")

總結

異常處理可以解決程序報錯或因為異常而停止的問題
語法為:

try:
<容易出錯的函數體>
except Exception as f: # Exxeption 為python中所有錯誤的父類
pass
# 意思是只有報錯就跳過

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved