简介
工具函数模块,提供 JSON 文件读取(从磁盘文件系统)、环境变量获取和 panic 恢复等通用函数。JSON 读取支持严格模式(失败时退出进程)和宽容模式(返回错误)。Recover() 函数捕获 panic 并输出带完整堆栈跟踪的错误日志。
导入
go
import "github.com/wallace5303/ee-go/eutil"API
ReadJsonStrict(f)
说明:从磁盘文件系统读取 JSON 文件并解析为 map[string]any。严格模式:文件不存在时抛出 ExitConfigFileNotExist 异常,读取或解析失败时抛出 ExitConfigFile 异常,进程直接退出。适用于必须存在的配置文件。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| f | string | 是 | 磁盘上的 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 解析失败时返回错误,不退出进程。适用于可选或可能缺失的配置文件。
参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| f | string | 是 | 磁盘上的 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")
}