當執行python程式時,如果遇到預料之外的錯誤,python直譯器會返回乙個異常,並且立刻結束執行程式;那麼,如果我們想要利用那些返回的異常,並不希望程式異常結束,此時就需要python的異常捕獲功能了。
try:
***//try語句使用在可能會出現異常的**前面,用來捕獲那些可能的異常
except error:
***//except語句與try配合使用,當try語句塊出現錯誤時,except將根據錯誤的型別執行我們希望的操作,其中error為錯誤的型別。
else:
***//沒有異常則會執行else語句塊
finally:
***//不論有沒有產生異常都會執行finally語句塊
except (nameerror,filenotfounderror)://當我們需要捕獲兩個或以上的錯誤型別時,則可以用()將它們括起來,使之成為乙個元組型別
except exception://exception代表所有的錯誤型別,即如果上面的錯誤型別都沒有**獲到,則這個錯誤型別一定會**獲到(前提是有錯誤)
except exception
as err://如果需要檢視究竟是什麼錯誤型別,則可以將錯誤型別作
print(err) //為字串賦值給err
//我們也可以使用raise語句自定義異常
class
shortinputexception
(exception):
'''自定義的異常類'''
def__init__
(self, length, atleast):
#super().__init__()
self.length = length
self.atleast = atleast
try:
s = input('請輸入 --> ')
if len(s) < 3:
raise shortinputexception(len(s), 3)//raise引發乙個自定義的異常
except shortinputexception as result://這個變數被繫結到了錯誤的例項
print('shortinputexception: 輸入的長度是 %d,長度至少應是 %d'% (result.length, result.atleast))
raise //如果raise後面不接引數,則以預設方式產生異常(python直譯器返回異常並終止程式)
沒有捕獲異常時:
open('***.txt') //開啟乙個不存在的檔案
staight@python:~$ python3 test.py //執行程式時返回filenotfounderror錯誤,程式終止
traceback (most recent call last):
file "test.py", line
1, in
open('***.txt')
filenotfounderror: [errno 2] no such file
ordirectory: '***.txt'
使用異常捕獲:
try:
open('***.txt')
print('檔案開啟成功')
except filenotfounderror:
print('檔案沒有找到')
staight@python:~$ python3 test.py //正常執行,並返回錯誤資訊
檔案沒有找到
python異常捕獲 如何捕獲Python中的異常
python 提供了try except語句捕獲並處理異常,該異常處理語句的基本語法結構如下 try 可能產生異常的 塊 except error1,error2,as e 處理異常的 塊1 except error3,error4,as e 處理異常的 塊2該格式中,括起來的部分可以使用,也可以省...
python異常捕獲
python的異常處理如c c 的結構一樣。python用try.except.c c 則用try.catch.並不難理解。在對具體錯誤的獲取則有點不同,主要是語法的差異上。c 在catch後可生成相應乙個異常的類,然後可通過類物件獲取相關的錯誤資訊。而python則不同,它在獲取錯誤資訊有點奇怪,...
Python捕獲異常
如果感覺 可能會出現異常,可以通過如下兩種方法捕獲異常。一 捕獲所以異常 try statement1 statement2 except exception,e print exception,e 二 通過trace模組檢視 import traceback try statement1 stat...