python異常捕獲

2021-08-08 03:29:58 字數 1847 閱讀 3653

當執行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...