本文實例講述了Python異常處理操作。分享給大家供大家參考,具體如下:
一、異常處理的引入
>>>whileTrue:try:x = int(input("Please enter a number: "))breakexceptValueError:print("Oops! That was no valid number. Try again ")Please enter a number: yOops!That was no valid number.Try againPlease enter a number:1.3Oops!That was no valid number.Try againPlease enter a number:5二、try語句工作方式
1、執行try子句(在關鍵字try和關鍵字except之間的語句)
2、如果沒有異常發生,忽略except子句,try子句執行后結束。
3、如果在執行try子句的過程中發生了異常,那么try子句余下的部分將被忽略。如果異常的類型和 except 之后的名稱相符,那么對應的except子句將被執行。最后執行 try 語句之后的代碼。
4、如果一個異常沒有與任何的except匹配,那么這個異常將會傳遞給上層的try中。
5、一個 try 語句可能包含多個except子句,分別來處理不同的特定的異常。最多只有一個分支會被執行。
6、處理程序將只針對對應的try子句中的異常進行處理。
7、一個except子句可以同時處理多個異常,這些異常將被放在一個括號里成為一個元組,例如:
except (RuntimeError, TypeError, NameError): pass
8、最后一個except子句可以忽略異常的名稱,它將被當作通配符使用。你可以使用這種方法打印一個錯誤信息,然后再次把異常拋出。
>>>import os>>>try:f = open('myfile.txt')s = f.readline()i = int(s.strip())exceptOSErroras err:print("OS error: {0}".format(err))exceptValueError:print("Could not convert data to an integer.")except:print("Unexpected error:", sys.exc_info()[0])raiseOS error:[Errno2]No such file or directory:'myfile.txt'三、else子句
try except 語句還有一個可選的else子句,如果使用這個子句,那么必須放在所有的except子句之后。這個子句將在try子句沒有發生任何異常的時候執行。
>>>try:f = open('a.txt','r')exceptIOError:print('cannot open')except:print('other ERR')else:print('file close')f.close()cannot open使用 else 子句比把所有的語句都放在 try 子句里面要好,這樣可以避免一些意想不到的、而except又沒有捕獲的異常。
四、異常處理try中函數
異常處理并不僅僅處理那些直接發生在try子句中的異常,而且還能處理子句中調用的函數(甚至間接調用的函數)里拋出的異常。
>>>def this_fails():x =1/0>>>try:this_fails()exceptZeroDivisionErroras err:print('Handling run-time error:', err)Handling run-time error: division by zero希望本文所述對大家Python程序設計有所幫助。
新聞熱點
疑難解答