Python學習 十一 異常

2022-06-22 18:24:10 字數 2529 閱讀 6829

一、定義

python用異常物件來表示異常情況。遇到錯誤後,會引發異常,如果異常物件並沒有被處理或者捕捉,程式就會用所謂的回溯(traceback)終止執行。

每個異常都是一些類的例項,這些例項可以被引發,並且可以用很多方法進行捕捉。

二、raise語句引發異常

>>> raise

exception

traceback (most recent call last):

file

"", line 1, in

exception

>>> raise exception('

error error')

traceback (most recent call last):

file

"", line 1, in

exception: error error

exception是所有異常類的基類。其它一些常見異常類可以檢視手冊。上面兩個例子都通過raise語句引發了異常。第二個例子裡加上了錯誤資訊。

三、捕捉異常

通過try/except語句可以實現捕捉異常的功能。針對具體的異常,可以在except後面加上異常類,如下:

try

: x = input('

enter the first number: ')

y = input('

enter the second number: ')

print x/y

except

zerodiyisionerror:

print

"the second number can't be zero!

"

如果except後面什麼異常類也不加,那麼就會捕捉所有異常。

如果捕捉到了異常又想重新引發它,可以呼叫不帶引數的raise。

try

: x = input('

enter the first number: ')

y = input('

enter the second number: ')

print x/y

except

zerodiyisionerror:

raise

四、捕捉多個異常

第一種方法可以使用多個except子句,針對每種情況說明。

try

: x = input('

enter the first number: ')

y = input('

enter the second number: ')

print x/y

except

zerodiyisionerror:

print

"the second number can't be zero!

"except

typeerror:

print

"that was't a number!

當然也可以將異常型別作為元組列出。

try

: x = input('

enter the first number: ')

y = input('

enter the second number: ')

print x/y

except

(typeerror, nameerror):

print

"your numbers were bogus...

"

五、訪問異常物件本身

try

: x = input('

enter the first number: ')

y = input('

enter the second number: ')

print x/y

except

(typeerror, nameerror),e:

print e

通過如上方式就可以將錯誤列印出來。

六、使用else 、finally語句

在捕捉異常的時候,也可以聯合使用else、finally語句來執行一些操作。

x =none

try:

x = 1/0

except

nameerror:

print

"unknown variable

"else: #

無異常時會執行else語句

print

"that went well!

"finally: #

不管是否有異常,都會執行finally語句

print

"cleaning up

"​

Python學習(十一)

python open 方法用於開啟乙個檔案,並返回檔案物件,在對檔案進行處理過程都需要使用到這個函式,如果該檔案無法被開啟,會丟擲 oserror。注意 使用 open 方法一定要保證關閉檔案物件,即呼叫 close 方法。open 函式常用形式是接收兩個引數 檔名 file 和模式 mode 格...

Python學習十一

最簡單的輸出方法是用print語句,你可以給它傳遞零個或多個用逗號隔開的表示式。此函式把你傳遞的表示式轉換成乙個字串表示式,並將結果寫到標準輸出如下 usr bin python coding utf 8 print python 是乙個非常棒的語言,不是嗎?你的標準螢幕上會產生以下結果 pytho...

十一 異常操作

一 斷言assert 示例 斷言語句失敗,斷言之後的語句錯誤就丟擲異常 my list 1,2 assert len my list 0列表長度大於0,所以丟擲異常assertionerror 二 檢測異常try,except 示例 try 乙個try可以與多個except搭配使用,前面的 出錯之後...