go-carbon 1.2.6 版本发布,优化错误处理机制,弃用出错直接panic的粗暴处理方式


本文摘自网络,作者gouguoyin,侵删。

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()方法获取一世纪前时间(不跨月)


相关阅读 >>

关于Golang封装一个bash函数,用于执行bash命令

Golang判断数据类型和获取数据类型

Golang 如何处理大数据

2021-02-22

一文搞懂如何实现 Go 超时控制

Golang 创建型设计模式 原型模式

通过 wasmedge 嵌入webassembly 函数扩展 Golang 应用

Golang判断是否目录的方法

最简单的Go dockerfile编写姿势,没有之一!

关于Golang slice的append扩容

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...