作者QQ29 (我愛阿蓉)
看板C_and_CPP
標題[問題] try catch(...)的問題
時間Fri Oct 28 14:20:47 2011
請教各位關於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