Unfortunately I don't understand the dogma surrounding goto, even having taken a few programming classes. If using goto misses necessary code that is an implementation fault of the compiler. Additionally try/except is implemented with a structure similar to C's setjmp/longjmp, which is a nonlocal goto. If you trace the control flow you might see it.