1 Star 1 Fork 1

xiaoyutab / xgotool

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
recover.go 706 Bytes
一键复制 编辑 原始数据 按行查看 历史
xiaoyutab 提交于 2024-04-30 10:16 . 调整目录结构和依赖位置
package xlog
import "errors"
// 程序Recover恢复及记录相关信息
// 此程序为放置在defer中,避免程序强退导致异常的消息记录,所以使用时请直接:defer xlog.Recover()
//
// f Recover时调用的函数列表,一般留空,最常用作用为panic时的特殊日志记录(除xlog.Panic记录外的其他记录)
func Recover(f ...func()) {
e := recover()
if e != nil {
switch err := e.(type) {
case error:
Panic("程序异常", err)
case string:
// 因此处为defer记录,所以runtime.caller时需要再次往上调用一层
Panic("程序异常", errors.New(err))
}
}
// 调用传入的f函数
for i := 0; i < len(f); i++ {
f[i]()
}
}
Go
1
https://gitee.com/xiaoyutab/xgotool.git
git@gitee.com:xiaoyutab/xgotool.git
xiaoyutab
xgotool
xgotool
v0.3.13

搜索帮助