If the execution of println (or one of the methods called by it) causes a stack overflow, you will print the same i value from the catch clause of the enclosing main incarnation.
The exact behavior is rather unpredictable as it depends on the stack space still available.