There's no support for exception handling. I would implement it through clever use of macros, signals and signal handlers (SIGUSR1/2). In practice, when you "throw", your app send a SIGUSR1 to its own pid. The signal handler you registered then gets the control, and you can put the exception details in a global variable. as for "catching" you can inspect the exception global variable and act according to its status.
it's far from easy, but you can try if you really want to feel wizardy.
EDIT : I though more about it, and what I am proposing is wrong. signal handling is performed asynchronously, so your exception won't be propagated correctly. Please downvote me (keeping the answer for future reference of a bad solution).