1

#include <setjmp.h>
2

#include <stdio.h>
3

4

void
5

main()
6



{
7

jmp_buf env;
8

int jmpflag;
9

10


do

{
11


if ((jmpflag = setjmp(env)) == 0)

{ /**//* try */
12

printf("run normal block\n");
13


longjmp(env, 1); /**//* throw exception 1 */
14

}
15


else if (jmpflag == 1)

{ /**//* catch (exception 1) */
16

printf("catch exception 1\n");
17

}
18


else

{ /**//* catch (

), optional*/
19

printf("cathc all\n");
20

}
21


/**//* no catcher, use longjmp(prev_env, 1) to prev jmp point */
22

} while (0);
23

}