好程式設計師Python培訓分享Python異常處理
好程式設計師Python 培訓分享 Python 異常處理 , Python 開發工程師們在工作的過程中經常會遇到這樣或者那樣的問題,本篇文章給讀者們分享一下 Python 異常處理,對 Python 開發技術感興趣的小夥伴隨小編來了解一下吧。
定義:python 直譯器檢測到錯誤,觸發異常(也允許程式設計師自己觸發異常)程式設計師編寫特定的程式碼,專門用來捕 捉這個異常(這段程式碼與程式邏輯無關,與異常處理有關)如果捕捉成功則進入另外一個處理分支,執行你為其 定製的邏輯,使程式不會崩潰,這就是異常處理。
需求:當程式遇到問題時不讓程式結束,而越過錯誤繼續向下執行。
意義:python 解析器去執行程式,檢測到了一個錯誤時,觸發異常,異常觸發後且沒被處理的情況下,程式就在當前異常處終止,後面的程式碼不會執行,所以你必須提供一種異常處理機制來增強你程式的健壯性與容錯性。
try …… except …… else
格式:
try:
語句t
except 錯誤碼 as e:
語句1
except 錯誤碼 as e:
語句2
……
except 錯誤碼 as e:
語句n
else:
語句e
注意:else 語句可有可無
作用:用來檢測try 語句塊中的錯誤,從而讓 except 語句捕獲錯誤資訊並處理。
邏輯:當程式執行到try-except-else 語句時 1 、如果當 try “語句 t ”執行出現錯誤,會匹配第一個錯誤碼,如果匹配上就執行對應 " 語句 "2 、如果當 try “語句 t ”執行出現錯誤,沒有匹配的異常,錯誤將會被提交到上一層的 try 語句。或者到程式的最上層 3 、如果當 try “語句 t ”執行沒有出現錯誤,執行 else 下的“語句 e ”(你得有) 4 、如果當 try “語句 t ”執行出現錯誤,匹配到錯誤碼,執行對應 " 語句 " ,然後將不在執行以後的 except 語句。
例項程式碼:
>>> s1 = 'a'
>>> int(s1)
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
int(s1)
ValueError: invalid literal for int() with base 10: 'a'
>>>
如何才能處理異常,進行下一步呢?
s1 = 'a'
try:
int(s1)
except ValueError as e:
print(e)
print(' 出錯了,請檢查程式碼!! ')
================ RESTART: C:\Users\Administrator\Desktop\1.py ================
invalid literal for int() with base 10: 'a'
出錯了,請檢查程式碼!!
>>>
多分支
當執行結果可能會出現二個或多個異常時使用多分支。
try:
msg = input(' 請輸入 :')
num = int(msg)
nm = list(num)
except TypeError as e:
print(e)
except ValueError as e:
print(e)
================ RESTART: C:\Users\Administrator\Desktop\1.py ================
請輸入:111
'int' object is not iterable
>>>
================ RESTART: C:\Users\Administrator\Desktop\1.py ================
請輸入:a
invalid literal for int() with base 10: 'a'
>>>
萬能異常
在python 的異常中,有一個萬能異常: Exception ,他可以捕獲任意異常
s1 = 'a'
try:
int(s1)
except Exception as e:
print(e)
print(' 出錯了,請檢查程式碼!! ')
================ RESTART: C:\Users\Administrator\Desktop\1.py ================
invalid literal for int() with base 10: 'a'
出錯了,請檢查程式碼!!
>>>
和前面的程式碼一模一樣。
try-finally 語句
語句無論是否發生異常都將執行最後的程式碼。
s1 = input(' 輸入: ')
try:
int(s1)
except ValueError as e:
print(e)
else:
print('try 內程式碼塊沒有異常則執行我 ')
finally:
print(' 無論異常與否 , 都會執行該模組 , 通常是進行清理工作 ')
================ RESTART: C:\Users\Administrator\Desktop\1.py ================
輸入:10
try 內程式碼塊沒有異常則執行我
無論異常與否, 都會執行該模組 , 通常是進行清理工作
>>>
================ RESTART: C:\Users\Administrator\Desktop\1.py ================
輸入:a
invalid literal for int() with base 10: 'a'
無論異常與否, 都會執行該模組 , 通常是進行清理工作
>>>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2736913/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師Python培訓分享Python程式設計中常見的異常處理程式設計師Python
- 好程式設計師Python培訓分享Python程式設計師面試技巧程式設計師Python面試
- 好程式設計師Java培訓分享Java處理異常的幾個小知識程式設計師Java
- 好程式設計師Python培訓分享四款Python程式庫程式設計師Python
- 好程式設計師Python培訓分享numpy簡介程式設計師Python
- 好程式設計師Python培訓分享機器學習面試題一程式設計師Python機器學習面試題
- 好程式設計師Python培訓分享如何寫Python裝飾器程式設計師Python
- 好程式設計師Python培訓分享Python爬蟲工具列表大全程式設計師Python爬蟲
- 好程式設計師Python培訓分享Python爬蟲相關框架程式設計師Python爬蟲框架
- 好程式設計師Python培訓分享Python系列之分支結構程式設計師Python
- 好程式設計師Python培訓分享Python系列之字串的使用程式設計師Python字串
- 好程式設計師Python培訓分享Python如何呼叫RPC介面程式設計師PythonRPC
- 好程式設計師Python培訓分享Python配置gRPC環境程式設計師PythonRPC
- 好程式設計師Python培訓分享學Python要注意什麼程式設計師Python
- 好程式設計師Python培訓分享開發工具推薦程式設計師Python
- 好程式設計師Python培訓分享基礎入門Django程式設計師PythonDjango
- 好程式設計師Python培訓分享For迴圈用法詳解程式設計師Python
- 好程式設計師Python培訓分享Python入門基礎知識程式設計師Python
- 好程式設計師Python培訓分享Python系列之迴圈結構程式設計師Python
- 好程式設計師Python培訓分享Python生成器與迭代器程式設計師Python
- 好程式設計師Python培訓分享Python之初識網路爬蟲程式設計師Python爬蟲
- 好程式設計師Python培訓分享簡述fetchone()函式程式設計師Python函式
- 好程式設計師Python培訓分享Python中程式和執行緒詳解程式設計師Python執行緒
- Python培訓教程分享:Python異常機制Python
- 好程式設計師Python培訓分享網路爬蟲的分類程式設計師Python爬蟲
- 好程式設計師Python培訓分享深入理解yield from語法程式設計師Python
- 好程式設計師Python培訓分享udp和tcp協議介紹程式設計師PythonUDPTCP協議
- 好程式設計師Python培訓分享Python面試寶典之基礎篇-03程式設計師Python面試
- 好程式設計師Python培訓分享Python生成器的詳細介紹程式設計師Python
- 好程式設計師Python培訓分享函數語言程式設計之匿名函式程式設計師Python函數函式
- 好程式設計師Java培訓分享Java程式設計技巧程式設計師Java
- 好程式設計師Python培訓Python如何呼叫服務介面程式設計師Python
- 好程式設計師Python培訓分享print和return的作用及區別程式設計師Python
- 好程式設計師Python培訓分享列表去重中的copy問題程式設計師Python
- 好程式設計師Python培訓分享API自動化實戰詳解程式設計師PythonAPI
- 好程式設計師Python培訓分享函式的定義與使用示例程式設計師Python函式
- 好程式設計師大資料培訓分享Hadoop怎樣處理資料?程式設計師大資料Hadoop
- 好程式設計師Java培訓分享Java效能常見命令有哪些程式設計師Java