在另一個線程的評論中告訴我,只要發生任何不尋常的事情,我都應該使用異常,即使它不是致命的腳本。這想出了爲我所用結構類似於如下:C++非致命異常處理
return err("File could not be loaded");
這將打印錯誤到屏幕上,並返回false,終止指令處理。有人建議,除非有例外情況,否則這樣做會更好。
問題在於,對於所有意圖和目的,程序都是通過控制檯控制的語言解釋程序,這意味着只要命令輸入錯誤或者解釋代碼中存在錯誤,就會出現錯誤需要顯示。
除了這些問題似乎很少被作爲例外處理的事實之外,應該如何實施呢?如何使用try塊來控制處理路徑?例如,目前我的代碼如下:
if(!validate(code))
return false; //the validate function already having output the error
else
process(code);
我應該如何保證過程(代碼)只執行,如果驗證(代碼)獲得成功嗎?我應該只是從catch塊中的函數return false;
?這似乎回到了使用返回值處理異常事件的原始問題。這在我看來,最根本的問題是,這些問題是不是在所有的異常,但我聽從那些有更多的經驗比我
毫無疑問,你會得到很多回答:「例外只適用於特殊情況。」請忽略它們。 – 2010-12-13 21:21:20
@John Dibling:例外或評論? – 2010-12-13 21:27:00
是的,如果你不理睬,你也可以忽略,「使用明確有意義的名稱」,「RAII是你的朋友」,「不要添加不必要的耦合」,以及任何其他各種人們說你應該遵循的事情來編寫清晰且易於維護的代碼。 – 2010-12-13 21:30:01