Python培訓教程分享:Python異常機制
在 學習Python技術的時候,我們經常會遇到一些異常,例如導致程式在執行過程中出現的中斷或退出,我們都稱之為異常,大多數的異常都不會被程式處理,而是以錯誤資訊的形式展現出來。本期 Python培訓教程就算教大家關於Python異常機制的內容。
Python培訓教程分享:Python異常機制,首先我們要理解什麼叫做異常?
在程式執行過程中,總會遇到各種各樣的問題和錯誤。有些錯誤是我們編寫程式碼時自己造成的:比如語法錯誤、呼叫錯誤,甚至邏輯錯誤。還有一些錯誤,則是不可預料的錯誤,但是完全有可能發生的:比如檔案不存在、磁碟空間不足、網路堵塞、系統錯誤等等。
這些導致程式在執行過程中出現異常中斷和退出的錯誤,我們統稱為異常。大多數的異常都不會被程式處理,而是以錯誤資訊的形式展現出來。
異常的分類:
異常有很多種型別,Python內建了幾十種常見的異常,無需特別匯入,直接就可使用。
需要注意的是,所有的異常都是異常類,首字母是大寫的!
異常的危害:
如果程式中一旦出現了異常的語句程式碼,則該異常就會立即中斷程式的執行!
因此:為了保證程式的正常執行,提高程式健壯性和可用性。我們應當儘量考慮全面,將可能出現的異常進行處理,而不是留在那裡,任由其發生。
基本語法:
異常的基本結構:try except
# (1)通用異常
try:
pass # 正常執行語句
except Exception as ex:
pass # 異常處理語句
# (2)指定異常
try:
pass # 正常執行語句
except <異常名>:
pass # 異常處理語句
#(3) 捕獲多個異常
# 捕獲多個異常有兩種方式,第一種是一個except同時處理多個異常,不區分優先順序:
try:
pass # 正常執行語句
except (<異常名1>, <異常名2>, ...):
pass # 異常處理語句
# 第二種是區分優先順序的:
try:
pass # 正常執行語句
except <異常名1>:
pass # 異常處理語句1
except <異常名2>:
pass # 異常處理語句2
except <異常名3>:
pass # 異常處理語句3
# 異常巢狀
try:
try:
with open("abc") as f:
pass
except NameError as e:
print(e)
except OSError as e:
print("OSError:",e.strerror)
機制說明:
首先,執行try子句(在關鍵字try和關鍵字except之間的語句)
如果沒有異常發生,忽略except子句,try子句執行後結束。
如果在執行try子句的過程中發生了異常,那麼try子句餘下的部分將被忽略。如果異常那麼對應的except子句將被執行。
在Python的異常中,有一個通用異常:Exception,它可以捕獲任意異常。
finally
try:
pass # 正常執行語句
except Exception as e:
pass # 異常處理語句
finally:
pass # 無論是否發生異常一定要執行的語句,比如關閉檔案,資料庫或者socket
raise語句
很多時候,我們需要主動丟擲一個異常。Python內建了一個關鍵字raise,可以主動觸發異常。
raise可以丟擲自定義異常,我們已將在前面看到了python內建的一些常見的異常型別。大多數情況下,內建異常已經夠用了。但是有時候你還是需要自定義一些異常:自定義異常應該繼承Exception類,直接繼承或者間接繼承都可以,例如:
# 1.使用者自定義異常型別
class TooLongExceptin(Exception):
"this is user's Exception for check the length of name "
def __init__(self, len):
self.len = len
def __str__(self):
return "輸入姓名長度是" + str(self.len) + ",超過長度了"
try:
name = input("enter your name:")
if len(name) > 5:
raise TooLongExceptin(len(name))
else:
print(name)
except TooLongExceptin as error: # 這裡異常型別是使用者自定義的
print("列印異常資訊:", error)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996644/viewspace-2844987/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python培訓分享:Python內建標準異常及其解析Python
- 好程式設計師Python培訓分享Python異常處理程式設計師Python
- Python異常處理機制Python
- Python培訓教程分享:“高效實用” 的Python工具庫Python
- 好程式設計師Python培訓分享Python程式設計中常見的異常處理程式設計師Python
- java培訓教程分享:Java中使用者如何自定義異常?Java
- Python培訓教程分享:10款超好用的Python開發工具!Python
- Python培訓教程分享:Python中選擇結構是什麼Python
- Python培訓教程分享:Python模組如何匯入__all__屬性?Python
- Python培訓教程分享:visual studio編寫python怎麼樣?Python
- Python培訓分享學Python需要掌握哪些技能Python
- Python培訓分享:Python有什麼優點?Python
- Python基礎入門(7)- Python異常處理機制Python
- Python異常處理機制、除錯、測試Python除錯
- Python培訓分享:Python發展前景怎麼樣?Python
- Python培訓分享:學習Python後有哪些用途?Python
- 【Python入門教程】如何選擇合適的Python培訓機構?Python
- Python入門學習之異常處理機制Python
- Python培訓基礎教程都教哪些Python
- 上海python培訓機構都有哪些?Python
- Python培訓機構學員感悟Python
- Python培訓教程之Python基礎知識點梳理Python
- Python 簡明教程 --- 23,Python 異常處理Python
- python中的五種異常處理機制介紹Python
- 如何學好python?python培訓機構推薦Python
- Python培訓教程分享:有哪些值得使用的爬蟲開源專案?Python爬蟲
- Python培訓教程:Day02-語言元素Python
- Python培訓教程:pycharm常用的快捷鍵合集PythonPyCharm
- Java異常機制Java
- 培訓管理和機制梳理
- Python培訓分享:python爬蟲可以用來做什麼?Python爬蟲
- 好程式設計師Python培訓分享四款Python程式庫程式設計師Python
- Python培訓分享:Python新版本中的6個新特性Python
- Python培訓教程分享:如何實現pygame的初始化和退出操作?PythonGAM
- 好程式設計師Python培訓分享如何寫Python裝飾器程式設計師Python
- 好程式設計師Python培訓分享Python爬蟲工具列表大全程式設計師Python爬蟲
- 好程式設計師Python培訓分享Python爬蟲相關框架程式設計師Python爬蟲框架
- 好程式設計師Python培訓分享Python系列之分支結構程式設計師Python