一、定義
python用異常物件來表示異常情況。遇到錯誤後,會引發異常,如果異常物件並沒有被處理或者捕捉,程式就會用所謂的回溯(traceback)終止執行。
每個異常都是一些類的例項,這些例項可以被引發,並且可以用很多方法進行捕捉。
二、raise語句引發異常
>>> raiseexception
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:
"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:
"the second number can't be zero!
"except
typeerror:
"that was't a number!
當然也可以將異常型別作為元組列出。
try: x = input('
enter the first number: ')
y = input('
enter the second number: ')
print x/y
except
(typeerror, nameerror):
"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 =nonetry:
x = 1/0
except
nameerror:
"unknown variable
"else: #
無異常時會執行else語句
"that went well!
"finally: #
不管是否有異常,都會執行finally語句
"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搭配使用,前面的 出錯之後...