No treco da explicação em que o catch está localizado no m1(), ele imprime o seguinte:
inicio main
inicio m1
inicio m2
0
2
4
6
8
problema
fim m2
fim m1
fim main
Porém, quando o catch está no main, ele imprime:
inicio main
inicio m1
inicio m2
0
2
4
6
8
problema
fim main
Ele não deveria imprimir o "fim m2" e "fim m1" também, já que ele seguiria o o código normalmente?