python語法31[異常處理]
一 基本的異常處理
def TestTryException():
try:
f = open('myfile.txt')
s = f.readline()
f.close()
i = int(s.strip())
except IOError as ioerror :
print (ioerror)
except ValueError as valueerror:
print (valueerror)
except:
print ("Unexpected error")
else:
print (i)
finally:
print ("always running")
#TestTryException()
try:
f = open('myfile.txt')
s = f.readline()
f.close()
i = int(s.strip())
except IOError as ioerror :
print (ioerror)
except ValueError as valueerror:
print (valueerror)
except:
print ("Unexpected error")
else:
print (i)
finally:
print ("always running")
#TestTryException()
使用方式為try...except...else...finally,其中else和finally是可選項,finally不管是否有異常拋出總是會被執(zhí)行。
二 自定義exception
class MyError(Exception):
def __init__(self, value):
self.value = value
def __str__(self):
return repr(self.value)
def TestMyException():
try:
raise MyError(2*2)
except MyError as e:
print (e)
#TestMyException()
def __init__(self, value):
self.value = value
def __str__(self):
return repr(self.value)
def TestMyException():
try:
raise MyError(2*2)
except MyError as e:
print (e)
#TestMyException()
自定義的exception需要從python的Exception類繼承,使用raise來拋出異常。
完!


浙公網(wǎng)安備 33010602011771號