I don't see any difference between your catchtag and the given one.
When the catch block is returned to, it restarts the script inside from the beginning.
When my catch breakpoint block is returned to, it continues the script from the throw breakpoint block.
See inside the project for a demonstration.
Oh, now I see the difference, I have expected, that the script wont run the second time