use setjmp & longjmp