1.c++的異常處理機(jī)制被稱為不可恢復(fù)的(nonresumptive)
2.棧展開(kāi)(stack unwinding)
    如果找到一個(gè)catch子句, 則該異常被處理, 如果沒(méi)有找到catch子句, 則在主調(diào)函數(shù)繼續(xù)查找
    這個(gè)過(guò)程沿著潛逃函數(shù)調(diào)用鏈向上繼續(xù), 直到找到該異常的catch子句.
3.重新拋出(rethow)
    throw; //rethrow語(yǔ)句只能出現(xiàn)在catch子句飛復(fù)合語(yǔ)句中
    被拋出的異常就是原來(lái)的異常對(duì)象
4.把catch子句中的異常對(duì)象聲明為引用, 免去了對(duì)象的內(nèi)存拷貝, 又可以確保應(yīng)用在catch子句中的異常對(duì)象上的修改操作, 能夠反映到被重新拋出的異常

對(duì)象上
5.catch-all
    try {
        ....
    }
    catch(...) {} //catch-all格式
6.catch子句被檢查的順序與它們?cè)趖ry塊之后出現(xiàn)的順序相同, 一旦找到了一個(gè)匹配, 則后續(xù)的catch子句將不再檢查
7.異常規(guī)范(exception specification)
    void foo() throw(Object); //這種聲明就是異常規(guī)范
    異常聲明是函數(shù)接口的一部分
8.異常規(guī)范不允許重被拋出的異常類型到異常規(guī)范制定的類型之間的轉(zhuǎn)換:
    void foo() throw(string) {
        ....
        throw "exception";  //不允許從const char* 到string的轉(zhuǎn)換, 此時(shí)調(diào)用unexpected()
        throw string("exception"); //可以
    }