子程序應該不因傳入錯誤數據而被破壞, 哪怕是由其餘子程序產生的錯誤數據;換一種說法是, 程序員應該認可程序都是有問題的都須要被修改。程序員
軟件開發領域「垃圾進,垃圾出」的原則已通過時,應該作到: 垃圾進,什麼都不出;垃圾進,出錯誤提示;不準垃圾進。作法以下:編程
- 檢查全部來源於外部的值
在程序開發和使用期間,用於程序自檢的代碼即爲斷言; 使用斷言能夠在程序出現問題時讓程序員更快速的根據斷言給出的信息排查問題和緣由。
斷言一般含有兩個參數:一個描述假設爲真時的狀況的布爾表達式,一個斷言爲假時須要顯示的信息。函數創建本身的斷言機制
能夠使用的技術:返回中立值;換用下一個正確數據(如讀取數據);返回與前次相同的數據(如圖像顯示處理);換用最接近的合法值(超過預設範圍的值);把警告信息記錄到日誌文件中;返回一個錯誤碼;調用錯誤處理子程序或對象;當錯誤發生時顯示出錯信息;用最穩當的方式在局部處理錯誤;關閉程序。工具
兩者在某種意義上是相斥的spa
把代碼中的錯誤和異常事件傳遞給調用方代碼的一種特殊手段。debug
審慎明智的使用異常:設計
隔欄,一種代碼的容損策略,如經常使用的: 在輸入數據時將其轉化爲恰當的類型。版本控制
不要自動地把產品版的限制強加於開發版 之上
在開發階段讓異常儘可能顯現出來,而在產品真正運行時可以自我修復調試
- 使用版本控制工具
- 保留那些檢查重要錯誤的代碼
用防護的姿態適當的因地制宜的使用防護式代碼日誌