跳转到内容

失效停止

维基百科,自由的百科全书

计算机语言裡的失效停止(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

但在失效停止語言中,會將溢位視為異常,因此會產生異常條件。程式可能可以正常運作,也可能會因為異常條件而結束執行。

相關條目

[编辑]