Python Exception不会打印整个异常

问题描述 投票:1回答:1

我有一个字典,看起来像这样:

js = {'value': {'boot': {'delay': 0} } }

当我运行以下命令

print(js['value']['boot']['delay'])

我得到0这是我期望得到的行为。

当我运行以下

print(js['value']['booooot']['delay'])

我得到了KeyError: 'booooot',这也是预期的。

但是,当我将所有这些包装到try / except并打印异常时,我没有得到我预期的错误。

def myfunc(js):
    try:
        js['value']['booooot']['delay']
    except Exception as e:
        print(e)

我只是在控制台'booooot'上得到以下内容

当我在try / except块之外运行打印时,我不应该得到KeyError: 'booooot'吗?

python-3.x exception-handling try-catch
1个回答
0
投票
import sys
def func(js):
    try:
        print(js['value']['boooot']['delay'])
    except:
        print("Error Information: " + str(sys.exc_info()))

js = {'value': {'boot': {'delay': 0} } }
func(js)

命令sys.exc_info()将异常信息作为元组返回,索引0是错误类型,索引1带有错误本身。打印出上面的代码

Error Information: (<class 'KeyError'>, KeyError('boooot'), <traceback object at 0x01867558>)

谢谢你的询问!希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.