все Python 3Исключенияисключение
UserWarning
встроенные исключения
Категория предупреждений по умолчанию для warnings.warn().
Синтаксис
raise UserWarning
Частая ловушка: warnings.warn('...') ничего не бросает — текст уходит в stderr, а выполнение спокойно идёт дальше, поэтому except UserWarning вокруг такого вызова ничего не поймает. Чтобы предупреждения действительно превращались в исключения, нужен фильтр: warnings.simplefilter('error') или запуск python -W error. И по умолчанию предупреждение из одной и той же строки печатается только при первом срабатывании, так что в цикле его легко проглядеть.
Примеры
try:
raise UserWarning
except UserWarning as e:
print(type(e).__name__) # → UserWarning
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности