9. Python的异常

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后一定会执行。

你可能感兴趣的:(9. Python的异常)