Hola, para mi es porque no es un error "de codigo" digamos, por eso no se va por el catch, es un error que no puede ser controlado como dice el mismo error, es un error de memoria que se ve que va disminuyendo a medida que haces el bucle y ejecutas esa instruccion, por cierto ese bucle nunca termina...