Please enable JavaScript.
Coggle requires JavaScript to display documents.
錯誤 (錯誤處理 (程式庫變量 (滿足不同需要提供變量 (開發變量, 除錯變量, 優化變量), 不同變量可能有不同錯誤行為…
錯誤
錯誤處理
程式庫變量
滿足不同需要提供變量
開發變量
除錯變量
優化變量
不同變量可能有不同錯誤行為
優化變量效能優先,忽略錯誤檢測
除錯變量希望儘早檢測出錯誤,並找出所有錯誤
暫時改正問題
讓錯誤好像沒發生
沒有解決發生錯誤的根本原因,不過讓程式表現更健壯
程序終止或退出
對使用者而言,程式終止是不可接受
程式庫最有利的措施
拋出異常
一種優雅的處理方式
缺陷是把非局部的控制流程引入到程式
返回錯誤值
一種普遍的處理方式
缺點
某些函數不能有回傳值
某些函數不能方便的回傳錯誤值
用戶可能未檢查這些錯誤
錯誤檢查程式碼過多
創建nil值
建構子失敗時,透過方法讓用戶檢測是否為nil狀態
其他成員也需針對nil狀態處理
無效數據解釋為有效
定義無效值的有效預設值
容易衍生其他錯誤
貸款金額計算錯誤
允許不確定行為
錯誤類型
Library Error
實做錯誤
User Error
使用函數庫造成錯誤
System Error
運行在系統所造成的錯誤
資源限制錯誤
記憶體不足
嘗試分配較小的空間
嘗試釋放空間
比較好的處理方式是丟出異常
stack overflow
發生時沒有恢復的方式
磁碟儲存空間不足
嘗試刪除檔案釋放空間
異常安全性
不一致狀態
資源洩漏
錯誤檢測
不變性檢測
定義
某個值永遠為真
類型
函數前提條件
當函數被調用時,他的值一直為true
表示不變性
增加執行成本