add setjmp error handling