python异常处理语句出在try/except后还可以接一个else语句,下文就将详细介绍异常处理语句else,一起往下看看吧。
try...except语句具有可选的else子句,该子句如果存在,它必须放在所有except子句之后。它适用于try子句没有引发异常但又必须要执行的代码,实例如下:
for arg in sys.argv[1:]: try: f = open(arg, 'r') except OSError: print('cannot open', arg) else: print(arg, 'has', len(f.readlines()), 'lines') f.close()
使用else子句比向try子句添加额外的代码要好,可以避免意外捕获非try...except语句保护的代码触发的异常。
发生异常时,它可能具有关联值,即异常参数。是否需要参数,以及参数的类型取决于异常的类型。
except子句可以在异常名称后面指定一个变量。这个变量会绑定到一个异常实例并将参数存储在instance.args中。为了方便起见,该异常实例定义了__str__()以便能直接打印参数而无需引用.args。也可以在引发异常之前先实例化一个异常并根据需要向其添加任何属性,例如:
>>> try: ... raise Exception('spam', 'eggs') ... except Exception as inst: ... print(type(inst)) # the exception instance ... print(inst.args) # arguments stored in .args
如果异常有参数,则它们将作为未处理异常的消息的最后一部分('详细信息')打印。
总的来说,else是用来执行没有捕获到异常时的代码块的。如果想要了解更多的python知识,可以在顶部的栏目中找到python进入查看。