1996年的6月4日, 歐洲太空總署試射了一架無人駕駛Ariane 5火箭,這個計畫共花了十年和7千萬美金,但是這架火箭居然在發射後的36.7幾秒就爆炸了,意外事件的報告在兩個禮拜後出爐,指出了爆炸原因是因為程式設計的錯誤。
在飛行使用的慣性導航系統(IRS),正在處理一小段的資料時,因為無法轉換64bit的浮點數到16bit的整數,而造成了overflow的發生,隨即這個系統就關機了,而這段資料也被傳輸到另外一個備用的運算單元,這個重複的運算單元,就是怕原本的系統有問題而增設的,但是在幾毫秒後,這個備用的單元也關機了,原因就是這個系統跟原本的是一模一樣的,所以一樣無法處理那段資料,所以意外就發生了。
照一般程式處理的方式,當這個例外處理產生的時候,因為在realtime的系統上,我們會想辦法回復系統的狀態,而其實Ariane...