您好,登錄后才能下訂單哦!
include <iostream> #include <cstdio> using namespace std; class A{ public: A(void){cout << "A::A()" << endl;} ~A(void){cout << "A::~A()" << endl;} }; int func3(void){ A a; FILE *fp = fopen("none.txt","r"); if(!fp){ throw -1;//拋出異常,跳轉到當前作用域"}",這個異常既可以為基本類型,也可以為類類型 cout << "func3" << endl;//不執行 } fclose(fp); return 0; } int func2(void){ A a; func3();//func3函數拋出異常后,在函數func2內沒能處理,把異常接著拋, //所以會z直接跳到此作用域的"}" cout << "func2" << endl;//不會執行 return 0;//不執行 } int func1(void){ A a; func2();//func1沒能處理來自func2的異常,異常接著拋,直接跳到此作用域的"}" cout << "func1" << endl;//不執行 return 0;//不執行 } int main(void) { try{ func1(); //... } catch(int ex){//try語句塊下面必須為catch語句塊,是其他語句則報錯,這里catch捕獲 //到異常,然后繼續執行. cout << "ex=" << ex << endl; cout << "file open error" << endl; return -1; } return 0; }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。