go-carbon 1.2.6 版本釋出,最佳化錯誤處理機制,棄用出錯直接panic的粗暴處理方式

普羅米修斯發表於2021-01-27

carbon 是一個輕量級、語義化、對開發者友好的Golang時間處理庫,支援鏈式呼叫、農曆和gorm、xorm等主流orm

如果您覺得不錯,請給個star吧

github:github.com/golang-module/carbon

gitee:gitee.com/go-package/carbon

錯誤處理

如果有多個錯誤發生,只返回第一個錯誤資訊,前一個錯誤排除後才返回下一個錯誤資訊

場景一
c := carbon.SetTimezone(PRC).Parse("123456")
if c.Error != nil {
 // 錯誤處理... fmt.Println(c.Error)}
fmt.Println(c.ToDateTimeString())
// 輸出
the value "123456" and layout "2006-01-02 15:04:05" don't match
場景二
c := carbon.SetTimezone("XXXX").Parse("2020-08-05")
if c.Error != nil {
 // 錯誤處理... fmt.Println(c.Error)}
fmt.Println(c.ToDateTimeString())
// 輸出
invalid timezone "XXXX", please see the $GOROOT/lib/time/zoneinfo.zip file for all valid timezone
場景三
c := carbon.SetTimezone("XXXX").Parse("12345678")
if c.Error != nil {
 // 錯誤處理... fmt.Println(c.Error)}
fmt.Println(c.ToDateTimeString())
// 輸出
invalid timezone "XXXX", please see the $GOROOT/lib/time/zoneinfo.zip file for all valid timezone

建議使用SetTimezone()、Parse()、ParseByFormat()、ParseByDuration()、AddDuration()、SubDuration()等方法時先進行錯誤處理判斷,除非你能確保傳入引數無誤

更新日誌

  • 更新readme.md文件
  • 完善單元測試程式碼覆蓋率
  • carbon結構體的Loc私有屬性改成Loc公開屬性
  • carbon結構體新增Error公開屬性
  • 最佳化錯誤處理機制,棄用出錯直接panic的粗暴處理方式
  • 新增AddCenturies()方法獲取N世紀後時間
  • 新增AddCentury()方法獲取一世紀後時間
  • 新增SubCenturies()方法獲取N世紀前時間
  • 新增SubCentury()方法獲取一世紀前時間
  • 新增NextCenturies()方法獲取N世紀後時間(不跨月)
  • 新增NextCentury()方法獲取一世紀後時間(不跨月)
  • 新增PreCenturies()方法獲取N世紀前時間(不跨月)
  • 新增PreCentury()方法獲取一世紀前時間(不跨月)
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章