Python--异常处理

方式一: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组了,不用担心关闭打开的文件了。

原文地址:https://www.cnblogs.com/assiduity/p/5947415.html