В этом ответе https://stackoverflow.com/a/27680814/3456281 представлена следующая конструкция
a=[1,2]
while True:
if IndexError:
print ("Stopped.")
break
print(a[2])
который на самом деле печатает "Stopped". и разрывы (проверены с помощью Python 3.4.1).
Почему?! Почему if IndexError
даже законный? Почему a[2]
не поднимает IndexError
без try ... except
вокруг?