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