錯誤處理
Go 語言錯誤處理:Error、Panic、Recover。
Errors
- 在 error 位置回傳 nil 表示沒有錯誤
- 可透過實作
Error()方法建立自訂錯誤類型 - Go 1.13 後,盡量使用
errors.As方法檢視錯誤值是否為某自訂錯誤類型的實例
Ref: Custom Errors
- Links:
建立自訂錯誤的方式
- 使用
New函式建立自訂錯誤 - 使用
Errorf為錯誤加入更多資訊 - 使用 struct type 的
methods提供更多錯誤資訊 - 使用
structtype 和fields提供更多錯誤資訊
Panic
類似 Exception,在執行期發生。
使用 channels 時可能引發 panic 的情況:
- 向已關閉的 channel 發送資料
- 關閉一個已經關閉的 channel
Recover
從 panic 中恢復,通常搭配 defer 使用。