在編寫程序時可能會出現一些異常,比如類型錯誤,除零錯誤等,為了能捕獲並處理這些異常,可以使用python的異常處理功能。python使用raise語句可以拋出異常,對於可能出現異常的語句塊,用try語句包圍起來,並用except捕捉,就可以實現異常處理了,比如:
x=input("first number:")
y=input("second number:")
try:
print x/y
except ZeroDivisionError:
print "error"
y為零時會引發異常。
如果要捕捉兩個或者更多的異常,except後面加上括號即可,如上面的except語句可以改為except (ZeroDivisionError,TypeError),這樣可以捕獲除零和類型異常。如果想記錄異常信息,可以這樣寫:except ZeroDivisionError,e:接下來就可以處理異常信息,比如打印等。空的except語句可以捕獲所有的異常。在except語句後面還可以加上else語句,用於處理沒有異常發生的情況,比如:
while 1:
x=input("first number:")
y=input("second number:")
try:
print x/y
except ZeroDivisionError:
print "error"
else:
break
上面的程序中,如果遇到除數為零的情況程序會循環,不為零時,程序會執行到break語句從而跳出循環。
finally語句也非常有用,它位於異常處理的後面,它內部的代碼一定會被執行,它可以用於清理異常。
#!/usr/bin/env python
x=input("first number:")
y=input("second number:")
try:
print x/y
except ZeroDivisionError:
print "error"
finally:
sys.exit(1)
也可以自定義異常類,例如:
#!/usr/bin/env python
class myError(Exception):
def __init__(self,value):
self.value=value;
try:
raise myError(2)
except myError,e:
print "exception's value is",e.value
Python 的詳細介紹:請點這裡
Python 的下載地址:請點這裡