鍍金池/ 教程/ 區(qū)塊鏈/ 第 4 章 錯(cuò)誤處理機(jī)制
第 三 章 軟件工程的原則
第 4 章 錯(cuò)誤處理機(jī)制
9 最常見的錯(cuò)誤
6 幾種 Erlang 的特殊慣例
第 5 章 進(jìn)程、服務(wù)及消息
8 文檔
7 特殊的語法規(guī)范
使用 Erlang 編程開發(fā)——編程規(guī)則及規(guī)范
第 二 章 結(jié)構(gòu)和Erlang術(shù)語
10 必備文檔

第 4 章 錯(cuò)誤處理機(jī)制

  • 4.1 隔離通常情況處理代碼與錯(cuò)誤處理代碼
  • 4.2 確定錯(cuò)誤內(nèi)核

4.1 隔離通常情況處理代碼與錯(cuò)誤處理代碼

不要將處理“通常情況”的代碼和處理異常的代碼混雜在一起。盡量只編寫處理通常情況的代碼。如果通常情況的處理代碼失效,進(jìn)程應(yīng)該報(bào)告錯(cuò)誤,并盡可能快地崩潰。不要試圖修復(fù)錯(cuò)誤以繼續(xù)運(yùn)行進(jìn)程。錯(cuò)誤應(yīng)該在另外一個(gè)進(jìn)程中進(jìn)行處理(參看 5.5 節(jié)內(nèi)容)

將錯(cuò)誤恢復(fù)代碼和通常情況處理代碼予以清晰的隔離,可以極大簡化系統(tǒng)設(shè)計(jì)。

軟硬件出錯(cuò)時(shí)生成的錯(cuò)誤日志將用于后續(xù)階段對(duì)錯(cuò)誤的診斷和糾正。應(yīng)該永久地保留該進(jìn)程中的有益信息。

4.2 確定錯(cuò)誤內(nèi)核

系統(tǒng)設(shè)計(jì)的一個(gè)基本要素是確定系統(tǒng)中必須正確與不必正確的部分。

在傳統(tǒng)的操作系統(tǒng)設(shè)計(jì)中,系統(tǒng)內(nèi)核被假設(shè)為(而且被認(rèn)為必須)是正確的,然而,用戶應(yīng)用程序沒有必要都完全正確。如果用戶應(yīng)用程序失敗,那么應(yīng)該只會(huì)涉及到相應(yīng)應(yīng)用,不應(yīng)該影響到系統(tǒng)的總體完整性。

在系統(tǒng)設(shè)計(jì)的第一階段中,必須要搞清楚必須正確的部分。這一部分被稱之為錯(cuò)誤內(nèi)核(error kernel)。通常,錯(cuò)誤內(nèi)核都有一些實(shí)時(shí)的內(nèi)存駐留數(shù)據(jù)庫,用來保存硬件狀態(tài)。