Если вы не знаете, какое конкретное исключение нужно обработать, вы можете просто сделать такую вещь,
map = {'stack': 'overflow'}
try:
map['experts-exchange']
except Exception as inst:
print(type(inst)) # the exception instance
print(inst.args) # arguments stored in .args
print(inst) # __str__ allows args to be printed directly,
# but may be overridden in exception subclasses
Результат вышеприведенного кода:
<class 'KeyError'>
('experts-exchange',)
'experts-exchange'
Когда возникает исключение, оно может иметь ассоциированное значение, также известное как аргумент исключения.Наличие и тип аргумента зависят от типа исключения.
В условии исключением может указываться переменная после имени исключения.Переменная связана с экземпляром исключения с аргументами, хранящимися в instance.args.Для удобства экземпляр исключения определяет __ str __ () , поэтому аргументы могут быть напечатаны напрямую, без ссылки на .args.Можно также сначала создать исключение, прежде чем вызывать его, и добавить к нему любые атрибуты по своему усмотрению.