看板 C_and_CPP 關於我們 聯絡資訊
請教各位關於exception handle的問題 之前大量使用C# 知道他的try catch(Exception e)可以吃所有type的exception 所以反觀C++ 似乎是使用try catch(...) 但是... 我隨便寫一段測看看 try { 1. throw; //跑到這行就掛了? 2. throw exception(); //會進到catch 3. int a, b = 0; a= 1/b; //catch不到.... 4. int *ptr = 0; *ptr = 5566; //catch 不到 } catch(...) { } 我比較想了解 為啥 1,3,4都catch不到 1 和 2 有什麼差異嗎? 像是寫C++ 其實我根本也不清楚到底有多少種Exception Type C# 的 IDE 很順 打幾個字就跳出來相關Type C++ 就不知怎處理 千奇百怪exception 所以想先找一個general的方式做catch 但連 divide by zero, null reference exception都catch不到好像也滿怪的 還是我用錯了? 為啥2. 就catch的到 難道compiler(這邊用詞不知道有沒有錯, 還是OS) 發的exception 不是用throw 所以我 攔截不到? 這方面沒什麼概念 請教各位有經驗的版友 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.87.64.222
james732:我覺得我從來沒有弄懂C++的exception要怎麼正確的使用 XD 10/28 14:23
purincess:3跟4如果用windows可以用_set_se_translator以及相關 10/28 15:41
purincess:的東西來做出有throw exception的效果. 用*nix的話還是 10/28 15:41
purincess:要攔截signal. XD 10/28 15:42