try..except
我们可以使用try..except语句来处理异常。我们把通常的语句放在try-块中,而把我们的错误处理语句放在except-块中。
except从句可以专门处理单一的错误或异常,或者一组包括在圆括号内的错误/异常。如果没有给出错误或异常的名称,它会处理所有的错误和异常。对于每个try从句,至少都有一个相关联的except从句。
你还可以让try..catch块关联上一个else从句。当没有异常发生的时候,else从句将被执行。
引发异常
可以使用raise语句引发异常。你还得指明错误/异常的名称和伴随异常触发的异常对象。你可以引发的错误或异常应该分别是一个Error或Exception类的直接或间接导出类。
# 通过继承定义一个自定义的异常‘ShortInputException’。
class ShortInputException(Exception):
'''A user-defined exception class.'''
def __init__(self, length, atleast):
Exception.__init__(self)
self.length = length
self.atleast = atleast
try:
s = input('Enter something --> ')
if len(s) < 3:
print(len(s))
raise ShortInputException(len(s), 3)
except EOFError:
print ('\nWhy did you do an EOF on me?')
except ShortInputException as x: #与Python 2.X不同的写法
print ('ShortInputException: The input was of length %d, \
was expecting at least %d' % (x.length, x.atleast))
else:
print ('No exception was raised.')
finally:
print('finish the pro')
finally
在一个try块下,你可以同时使用except从句和finally块,要同时使用它们的话,需要把一个嵌入另外一个。
finally块在执行了try 或者 except后一定会执行。
网友评论