cerror-handlingsetjmp

What are some "good" ways to use longjmp/setjmp for C error handling?


I have to use C for one project and I am thinking of using longjmp/setjmp for error handling as I think it will be much easier to handle error in one central place than return codes. I would appreciate if there are some leads on how to do this.

I am particularly concerned with resource cleanup being correctly done if any such error occurs.

Also how do I handle errors that result in multi-threaded programs using them?

Even better, is there some C library that already exists for error/exception handling?


Solution

  • Have a look at this example/tutorial:
    http://www.di.unipi.it/~nids/docs/longjump_try_trow_catch.html