當你的程式中出現異常情況時就需要異常處理。比如當你開啟乙個不存在的檔案時。當你的程式中有一些無效的語句時,python會提示你有錯誤存在。
下面是乙個拼寫錯誤的例子,print寫成了print。python是大小寫敏感的,因此python將引發乙個錯誤:
>>> print 'hello world'try...except語句可以用於捕捉並處理錯誤。通常的語句放在try塊中,錯誤處理語句放在except塊中。示例如下:file "
", line 1
print 'hello world'
^syntaxerror: invalid syntax
>>> print 'hello world'
hello world
#!/usr/bin/python執行輸出如下:# filename: try_except.py
import sys
try:
s = raw_input('enter something --> ')
except eoferror:#處理eoferror型別的異常
print '/nwhy did you do an eof on me?'
sys.exit() # 退出程式
except:#處理其它的異常
print '/nsome error/exception occurred.'
print 'done'
$ python try_except.py說明:每個try語句都必須有至少乙個except語句。如果有乙個異常程式沒有處理,那麼python將呼叫預設的處理器處理,並終止程式且給出提示。enter something -->
why did you do an eof on me?
$ python try_except.py
enter something --> python is exceptional!
done
你可以用raise語句來引發乙個異常。異常/錯誤物件必須有乙個名字,且它們應是error或exception類的子類。
下面是乙個引發異常的例子:
#!/usr/bin/python執行輸出如下:#檔名: raising.py
class shortinputexception(exception):
'''你定義的異常類。'''
def __init__(self, length, atleast):
exception.__init__(self)
self.length = length
self.atleast = atleast
try:
s = raw_input('請輸入 --> ')
if len(s) < 3:
raise shortinputexception(len(s), 3)
# raise引發乙個你定義的異常
except eoferror:
print '/n你輸入了乙個結束標記eof'
except shortinputexception, x:#x這個變數被繫結到了錯誤的例項
print 'shortinputexception: 輸入的長度是 %d, /
長度至少應是 %d' % (x.length, x.atleast)
else:
print '沒有異常發生.'
$ python raising.py當你正在讀檔案或還未關閉檔案時發生了異常該怎麼辦呢?你應該使用try...finally語句以釋放資源。示例如下:請輸入 -->
你輸入了乙個結束標記eof
$ python raising.py
請輸入 --> --> ab
shortinputexception: 輸入的長度是 2, 長度至少應是 3
$ python raising.py
請輸入 --> abc
沒有異常發生.
#!/usr/bin/python執行輸出如下:# filename: finally.py
import time
try:
f = file('poem.txt')
while true: # 讀檔案的一般方法
line = f.readline()
if len(line) == 0:
break
time.sleep(2)#每隔兩秒輸出一行
print line,
finally:
f.close()
print 'cleaning up...closed the file'
$ python finally.py說明:我們在兩秒這段時間內按下了ctrl-c,這將產生乙個keyboardinterrupt異常,我們並沒有處理這個異常,那麼python將呼叫預設的處理器,並終止程式,在程式終止之前,finally塊中的語句將執行。programming is fun
when the work is done
cleaning up...closed the file
traceback (most recent call last):
file "finally.py", line 12, in ?
time.sleep(2)
keyboardinterrupt
本系列的文章**是http://www.pythontik.com/html,如果有問題可以與那裡的站長直接交流。
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 上述 的報錯是除零的錯...
python異常處理
與許多物件導向一樣,python 具有異常處理,通過使用 try.except 來處理異常,而通過 raise 來引發異常。異常在 python 中無處不在 實際上在標準 python 庫中的每個模組都使用了它們,並且 python 自已會在許多不同的情況下引發它們。例如 使用不存在的字典關鍵字 將...