все Python 3calendarисключение
calendar.IllegalMonthError
исключения
Исключение для номера месяца вне 1–12; подкласс ValueError, а в новых версиях ещё и IndexError. Номер лежит в атрибуте month.
Синтаксис
except calendar.IllegalMonthError as e: e.month
Ловите его через ValueError: это работает на всех версиях. Бросают его не все функции модуля: weekday(2024, 13, 1) поднимает обычный ValueError от datetime, а month(2024, 13) на 3.11 и ранних выпусках 3.12 падал с IndexError и лишь позже перешёл на IllegalMonthError. Поэтому except calendar.IllegalMonthError пропустит часть ошибок неверного месяца.
Примеры
import calendar
try:
calendar.monthrange(2024, 13)
except ValueError as e:
print(type(e).__name__, e.month) # → IllegalMonthError 13
import calendar
try:
calendar.weekday(2024, 13, 1)
except calendar.IllegalMonthError:
print('IllegalMonthError')
except ValueError:
print('ValueError') # → ValueError — weekday() бросает обычный
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности