python

当前位置:首页 > python基础教程 > 当前文章

python基础教程

try except嵌套之异常的传递

2020-08-01 96赞 python中国网
每篇文章努力于解决一个问题!python高级、python面试全套、操作系统经典课等可移步文章底部。

  如果在程序中发生了try嵌套,那么如果里面的try没有捕获到这个异常,外面的try就会接收到这个异常,然后进行处理,如果外边的try依然没有捕获到,那么再往外进行传递。

# -*- coding: utf-8 -*-

try:
    dic = {}
    try:
        name = dic['name']
        if name == 'python66':
            print('我在python66学习python')
    except IndexError as e: # 并不是IndexError
        print(e)
    finally:
        print('内部的try')

except KeyError as e:
    print('外部捕获异常',e)

内部的try
外部捕获异常 'name'


# -*- coding: utf-8 -*-
try:
    try:
        dic = {}
        try:
            name = dic['name']
            if name == 'python66':
                print('我在python66学习python')
        except IndexError as e: # 并不是IndexError
            print(e)
        finally:
            print('内部的try')

    except NameError as e: # 并不是NameError 
        print('第二层捕获异常',e)
    finally:
        print('第二层的try')
except Exception as e:
    print('外层层捕获异常',e)


内部的try
第二层的try
外层层捕获异常 'name'

文章评论

try except嵌套之异常的传递文章写得不错,值得赞赏