方式一:try语句:
1使用try和except语句来捕获异常
try: '''要执行的代码块''' except: '''发生异常时,执行的代码块'''
try: '''要执行的代码块''' except: '''发生异常时执行时,执行的代码块''' finally: '''无论是否发生异常,最终都要执行的代码块'''
try: '''要执行的代码块''' except: '''发生异常时,执行的代码块''' else: '''如果没有发生异常,执行的代码块'''
try: '''要执行的代码块''' except[exception1[, exception2[, ,,,exceptionN]: '''发生以上多个异常时,执行的代码''' else: '''没有发生异常时,执行的代码'''
该种异常处理语法的规则是:
· 执行try下的语句,如果引发异常,则执行过程会跳到第一个except语句。
· 如果第一个except中定义的异常与引发的异常匹配,则执行该except中的语句。
· 如果引发的异常不匹配第一个except,则会搜索第二个except,允许编写的except数量没有限制。
· 如果所有的except都不匹配,则异常会传递到下一个调用本代码的最高层try代码中。
· 如果没有发生异常,则执行else块代码。
产生一个异常并由except组处理时,Python解释器将一个异常对象传入这个except组。只需做一个很小的修改就可以在代码中使用这个异常(作为一个标识符):
except IOError as err: print('File error: ' + str(err))
用with处理文件:
由于处理文件时try/except/finally模式相当常用,所以Python提供了一个语句来抽象出相关的一些细节。对文件使用with语句时,可以大大减少需要编写的代码,因为with语句就不需要包含一个finally组来处理文件的关闭,即妥善关闭一个可能打开的数据文件。
try: data = open(‘its.txt’, "w") print("It's ... ", file = data) except IOError as err: print("File error: " + str(err)) finally: if 'data' in locals(): data.close()
上述代码可以用with改写为:
try: with open(‘its.txt’, "w") as data: print("It's...", file = data) except IOError as err: print('File error: ' + str(err))
使用with就不用使用finally组了,不用担心关闭打开的文件了。