第1集初次與異常處理編程相邂逅

字號:

和其它很多程序員一樣,本書的主人公阿愚也是在初學(xué)C++時(shí),在C++的sample代碼中與異常處理的編程方法初次邂逅的,如下:
    // Normal program statements
    ...
    try
    {
    // Execute some code that might throw an exception.
    }
    catch( CException* e )
    {
    // Handle the exception here.
    // "e" contains information about the exception.
    e->Delete();
    }
    // Other normal program statements
    瞧瞧,代碼看上去顯得那么整齊、干凈,try block和catch block遙相呼應(yīng),多有對稱美呀!因此主人公初次見面后就一見鐘情了。
    為什么要選用異常處理的編程方法?
    當(dāng)然更為重要的是,C++中引入的異常處理的編程機(jī)制提供給程序員一種全新的、更好的編程方法和思想。在C++中明確提出trycatch異常處理編程方法的框架之前的年代,程序員是怎樣編寫程序的,如下:
    void main(int argc, char* argv[])
    {
    if (Call_Func1(in, param out)
    {
    // 函數(shù)調(diào)用成功,我們正常的處理
    if (Call_Func2(in, param out)
    {
    // 函數(shù)調(diào)用成功,我們正常的處理
    while(condition)
    {
    //do other job
    if (has error)
    {
    // 函數(shù)調(diào)用失敗,表明程序執(zhí)行過程中出現(xiàn)一些錯(cuò)誤,
    // 因此必須處理錯(cuò)誤
    process_error();
    exit();
    }
    //do other job
    }
    }
    else
    {
    // 函數(shù)調(diào)用失敗,表明程序執(zhí)行過程中出現(xiàn)一些錯(cuò)誤,
    // 因此必須處理錯(cuò)誤
    process_error();
    exit();
    }
    }
    else
    {
    // 函數(shù)調(diào)用失敗,同樣是錯(cuò)誤處理
    process_error();
    exit();
    }
    }