Skip to content

简介

工具函数模块,提供 JSON 文件读取(从磁盘文件系统)、环境变量获取和 panic 恢复等通用函数。JSON 读取支持严格模式(失败时退出进程)和宽容模式(返回错误)。Recover() 函数捕获 panic 并输出带完整堆栈跟踪的错误日志。

导入

go
import "github.com/wallace5303/ee-go/eutil"

API

ReadJsonStrict(f)

说明:从磁盘文件系统读取 JSON 文件并解析为 map[string]any。严格模式:文件不存在时抛出 ExitConfigFileNotExist 异常,读取或解析失败时抛出 ExitConfigFile 异常,进程直接退出。适用于必须存在的配置文件。

参数

参数类型必填说明
fstring磁盘上的 JSON 文件路径

返回值map[string]any — JSON 文件解析后的键值映射

示例

go
config := eutil.ReadJsonStrict("/path/to/config.json")
fmt.Println("数据库主机:", config["host"])

参见estatic.ReadJsonStrict — 从嵌入文件系统读取 JSON(严格模式)

ReadJson(f)

说明:从磁盘文件系统读取 JSON 文件并解析为 map[string]any。宽容模式:读取失败或 JSON 解析失败时返回错误,不退出进程。适用于可选或可能缺失的配置文件。

参数

参数类型必填说明
fstring磁盘上的 JSON 文件路径

返回值(map[string]any, error) — 成功时返回 JSON 解析结果和 nil,失败时返回 nil 和错误信息

示例

go
config, err := eutil.ReadJson("/path/to/optional.json")
if err != nil {
    fmt.Println("文件未找到,使用默认值:", err)
    config = map[string]any{}
}
fmt.Println("配置数据:", config)

参见estatic.ReadJson — 从嵌入文件系统读取 JSON(宽容模式)

GetEnvs()

说明:获取并打印当前进程的所有环境变量。遍历 os.Environ() 返回的键值对并逐行输出到 stdout。主要用于调试和诊断。

返回值:无返回值

示例

go
eutil.GetEnvs()
// 输出:
// HOME = /Users/user
// PATH = /usr/local/bin:/usr/bin
// ...

Recover()

说明:捕获 panic 异常,记录错误信息包括完整堆栈跟踪。堆栈跟踪信息包括文件名、行号、函数名和源代码内容。应在可能发生 panic 的函数开头使用 defer eutil.Recover() 调用。

返回值:无返回值

示例

go
func riskyOperation() {
    defer eutil.Recover()
    // 可能发生 panic 的操作
    panic("something went wrong")
}