Python Glossary English

все 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Сообщить о неточности