Thrown exceptions are just socially acceptable gotos.
@iron_bug I was half-joking. Of course what I said was only true on a very superficial level, but my point was that, even though both disrupt the control flow, one is generally seen as a good thing with no visible influence on program verification, and the other is not, even though both can be misused (as @pkw pointed out) and used acceptably (as you mentioned yourself).