The documentation for calendar.IllegalMonthError describes it only as "a subclass of ValueError", but the source code defines it as class IllegalMonthError(ValueError, IndexError):.
The IndexError base class is intentional for backwards compatibility (see the source comment in Lib/calendar.py), but this is not mentioned in the docs. Users catching IndexError for bad month numbers won't know their code still works after 3.13.
Linked PRs
- gh-148663: Document that IllegalMonthError inherits from both ValueError and IndexError #148664
- [3.14] gh-148663: Document that
calendar.IllegalMonthErrorinherits from bothValueErrorandIndexError(GH-148664) #148917 - [3.13] gh-148663: Document that
calendar.IllegalMonthErrorinherits from bothValueErrorandIndexError(GH-148664) #148918