Избежание предупреждения" слишком широкое исключение " в PyCharm
Я пишу предложение исключения на верхнем уровне скрипта, и я просто хочу, чтобы оно регистрировало любые ошибки. Досадно, PyCharm жалуется, если я просто поймать Exception
.
import logging
logging.basicConfig()
try:
raise RuntimeError('Bad stuff happened.')
except Exception: # <= causes warning: Too broad exception clause
logging.error('Failed.', exc_info=True)
что-то не так с этим обработчиком? Если нет, то как я могу сказать PyCharm заткнуться об этом?
2 ответов
из комментарий Джоран: вы можете использовать # noinspection PyBroadException
чтобы сказать PyCharm, что вы в порядке с этим предложением исключения. Это то, что я изначально искал, но я пропустил опцию подавить инспекции в меню предложения.
import logging
logging.basicConfig()
# noinspection PyBroadException
try:
raise RuntimeError('Bad stuff happened.')
except Exception:
logging.error('Failed.', exc_info=True)
я нашел подсказку в этом закрытом запрос для PyCharm:
Я предлагаю вам отметить эту проверку как "хорошо", если блок except использует экземпляр исключения
e
почему-то.
потому что я захожу с exc_info=True
, Я неявно использую текущий объект исключения, но PyCharm этого не знает. Чтобы сделать его явным, я могу сделать что-то немного суховато: exc_info
можно использовать любое значение truthy для включения трассировки стека в бревно. Объект исключения должен быть правдивым, потому что это не None
.
import logging
logging.basicConfig()
try:
raise RuntimeError('Bad stuff happened.')
except Exception as e:
logging.error('Failed.', exc_info=e)