5. try语句嵌套

try嵌套是指一个try语句嵌套在另外一个try语句内部使用。

示例

# try语句嵌套示例

def write_nx_to_files():
    '''向文件写入n个x'''
    try:
        file = open('test.txt', 'w')  # OSError
        try:
            number = int(input('请输入写入x的个数:'))  # ValueError
            file.write('x' * number)
        finally:
            file.close()
            print('文件已经关闭')
    except OSError:
        print('放弃存储!')
    except ValueError:
        print('输入数字有错,放弃存储!')

write_nx_to_files()

try嵌套时异常状态传递

先在内部 try 语句中的 except 子句中处理,如果内部 try 语句没有 except 子句或 except 子句没有对应的类型来捕获此异常,则此异常将传递到外层的try语句再进行处理,直接将异常状态传递到最外层的 try 语句为止。