防禦式編程
From Wikipedia, the free encyclopedia
Remove ads
防禦式編程係編程上用到嘅一種設計原則,講緊寫源碼嗰陣要一路諗埋最壞情況可能會係點:程式通常都會攞某啲數據做輸入,而程式出錯好多時都係源於啲輸入唔啱款,例如個程式要整數做輸入,但個輸入係字符;採取防禦式編程嘅編程員會思考假如個輸入唔啱款,點先可以避免出錯。
基本概念
睇埋:程式出錯
譬如係以下嘅短程式,編寫嚟做加法嘅,個程式會攞兩個整數 a
同 b
做輸入,並且將兩個數加埋嘅和俾出嚟做輸出,編程員有考慮到一種情況,可能 a
同 b
唔係有效嘅數值,於是佢就寫多段碼,教部電腦喺呢種情況下要點做,簡化版[1]:
function add(a, b) { // add 呢個子程序,攞 a 同 b 做輸入...
if (a is not a valid number) { // 如果 a 唔係一個有效嘅數值...
throw new Error('invalid first number to add ' + a); // ... 就產生例外狀態
}
if (b is not a valid number) { // 如果 b 唔係一個有效嘅數值...
throw new Error('invalid second number to add ' + b); // ... 就產生例外狀態
}
return a + b; // 俾 a + b 嘅結果做輸出。
}
上面嘅例子用咗所謂嘅例外處理,即係即時打斷程式嘅流程,進入例外處理,如果冇定義對應嘅例外處理,就會出錯誤訊息,然後即刻中止程式運作。
Remove ads
點解重要
内文:容錯能力
防禦式編程能夠提高程式嘅容錯能力。容錯能力係講緊一個系統即使出現部分錯誤或者元件失效,依然能夠繼續運作並且維持基本功能。容錯能力唔係話要求系統零錯誤,而係設計到就算有問題發生,都唔會搞到成個系統崩潰[2]。例外處理可以算係容錯能力嘅一種實踐。
容錯能力相當重要。呢種能力確保系統可靠,對於銀行系統、航空交通控制、醫療設備呢啲關鍵領域嚟講特別重要,因為呢啲領域上用嘅系統一旦崩潰,可以引致人命傷亡同埋財產損失。其次,容錯能力能夠改良用家體驗,用家唔洗成日受到啲細小錯誤阻礙。
睇埋
引述
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads