失效停止

计算机语言裡的失效停止(fail-stop)子集是指程式碼的語義和原來一樣,但加入异常处理的內容。若程式語言支持,在有異常時就需要回報異常條件,不過其他情形下也可以回報異常條件。

失效停止語言常用在正确性非常重要的系統,因為這會讓系統較容易快速失效。例如,有些程式語言中的+運算子沒有结合律,因為兩數相加後可能會有整数溢出的問題。若一般的條件不滿足時,讓此程式快速失效,有利於撰寫正確的程式碼,並加以驗證。

範例
在許多廣為使用的程式語言中,以下存款的程式碼,若帳戶餘額很大,或是存入金額很高,可能會造成溢位,反而讓設定到new_bank_account_value的金額比原來金額要低。

new_bank_account_value = old_bank_account_value + amount_deposited
// 用32位元有號整數來示範溢位,超過2,147,483,647就會溢位
// -2,147,483,646 = 2,147,483,640 + 10

但在失效停止語言中,會將溢位視為異常,因此會產生異常條件。程式可能可以正常運作,也可能會因為異常條件而結束執行。
相關條目
*异常处理
*失效安全
*故障容許度
*

评论 (0)

  • 还没有评论,来抢沙发吧。