Python Exception не печатает все исключение - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть словарь, который выглядит следующим образом:

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

Когда я запускаю следующую команду

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

, я получаю 0, такое поведение я ожидаю получить.

Когда я запускаю следующее

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

, я получаю KeyError: 'booooot', что также ожидается.

Однако, когда я оборачиваю все это в попытку / исключение инапечатайте исключение, я не получаю ошибку, как ожидалось.

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

Я просто получаю следующее на консоли 'booooot'

Разве я не должен получить KeyError: 'booooot' какЯ сделал, когда запустил печать за пределами блока try / кроме?

1 Ответ

0 голосов
/ 12 февраля 2019
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>)

Спасибо, что спросили!Надеюсь, это поможет.

...