Python異常處理操作例項詳解

2022-10-04 19:42:25 字數 2047 閱讀 4133

一、異常處理的引入

>>>whiletrue:

try:

x = int(input("please enter a number: "))

break

exceptvalueerror:

print("oops! that was no valid number. try again ")

please enter a number: y

oops!that was no valid number.try again

please enter a number:1.3

oops!that was no valid number.try again

please 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: ".format(err))

exceptvalueerror:

print("could not convert data to an integer.")

except:

print("unexpected error:", sys.exc_info()[0])

raise

os error:[errno2]no such file or directory:'myfile.txt'

三、else子句

try except 語句還有乙個可選的else子句,如果使用這個子句,那麼必須放在所有的except子句之後。這個子句將nigfcx在try子句沒有發生任何異常的時候執行。

>>>try:

f = open('a.txt','r')

exceptioerror:

print('cannonigfcxt open')

except:

print('other err')

else:

print('file close')

f.close()

cannot open

使用 else 子句比把所有的語句都放在 try 子句裡面要好,這樣可以避免一些意想不到的、而except又沒有捕獲的異常。

四、異常處理try中函式

異常處理並不僅僅處理那些直接發生在try子句中的異常,而且還能處理子句中呼叫的函式(甚至間接呼叫的函式)裡丟擲的異常。

>>>def this_fails():

x =1/0

&gwww.cppcns.comt;>>try:

this_fails()

exceptzerodivisionerroras err:

print('handling run-time error', err)

handling run-time error: division by zero

Python異常處理例項

coding utf 8 異常處理 寫乙個自己定義的異常類 class myinputexception exception def init self,length,least exception.init self self.length length self.least least try ...

python異常處理 Python 異常處理

使用者輸入不完整 比如輸入為空 或者輸入非法 輸入不是數字 異常就是程式執行時發生錯誤的訊號,在python中,錯誤觸發的異常如下 在python中不同的異常可以用不同的型別 python中統一了類與型別,型別即類 去標識,不同的類物件標識不同的異常,乙個異常標識一種錯 觸發indexerror 觸...

python異常舉例 Python異常處理

1.1異常問題舉例 例一 i input 請輸入數字 請輸入數字 0 print i print 5 int i traceback most recent call last file line 1,in zerodivisionerror division by zero 上述 的報錯是除零的錯...