程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Example - C language exception deal(setjmp(), longjmp())

Example - C language exception deal(setjmp(), longjmp())

編輯:關於C語言

[cpp]   //author:DriverMonkey   //date:1/24/2013   //copyright: no copyright   //mail:[email protected]   //enviromen:Ubuntu      #include <iostream>   #include <setjmp.h>      using namespace std;      static jmp_buf jmpbuffer;      static void catch_exception(void);   static void raise_exception_1(void);   static void raise_exception_2(void);      int main(int argc, char *argv[])   {       cout<<"main()++"<<endl;          catch_exception();       raise_exception_1();       raise_exception_2();       cout<<"main()--"<<endl;              return 0;   }      static void catch_exception(void)   {       cout<<"catch_exception()++"<<endl;              setjmp(jmpbuffer);              cout<<"catch_exception()--"<<endl;     }   static void raise_exception_1(void)   {       cout<<"raise_exception_1()++"<<endl;          longjmp(jmpbuffer, 1);              cout<<"raise_exception_1()--"<<endl;       }      static void raise_exception_2(void)   {       cout<<"raise_exception_2()++"<<endl;          longjmp(jmpbuffer, 2);              cout<<"raise_exception_2()--"<<endl;       }     Terminal Output: main()++ catch_exception()++ catch_exception()-- raise_exception_1()++ catch_exception()-- raise_exception_2()++ catch_exception()-- main()--    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved