Даже если цикл попадает в оператор break, он плавно завершается, так как вы перехватываете исключение. Таким образом, вся информация, включая значение i
, будет в безопасности, как и ожидалось.
С другой стороны, если возникает какое-то другое исключение, которое не было перехвачено, программа быстро завершает работу с ненулевым кодом выхода, и вы не сможете использовать такую информацию.