setjump/longjumpを応用したり、 (g++のsjlj eh)
OSが例外処理を持っていたり。(WindowsのSEH)