#include <stdio.h> #include <stdlib.h> #include <setjmp.h> jmp_buf jb; void f1() { printf("進入f1()\n"); if(0/*正確執行*/){ } else { longjmp(jb,1); } printf("退出f1()\n"); } void f2() { printf("進入f2()\n"); if(1/*正確執行*/) { } else { longjmp(jb, 2); } printf("退出f2()\n"); } int main() { int r = setjmp(jb); if(r==0){ f1(); f2(); }else if(r==1){ printf("處理錯誤1\n"); exit(1); }else if(r==2){ printf("處理錯誤2\n"); exit(2); } return 0; }