go - 拦截 Go 中的错误和 panic

标签 go error-handling panic

我正在创建一个 CLI,只是为了更多地了解 Go。是否有可能拦截所有错误和 panic ,这样我就可以有一个独特的地方来处理它们,并对其进行格式化,然后打印到标准输出。

例子:

而不是使用:

x, err := doSomething()
if err != nil {
  errorHandler.Handler(err)
}

我可以在做任何事情之前使用初始化可以拦截所有错误的代码:

errorHandler.New()

然后我可以“忽略”所有错误:

x, _ := doSomething()

这对 Go 来说是一种不好的做法吗?

最佳答案

错误只是 go 中的值。就像函数返回字符串时无法拦截一样,错误也无法拦截。

关于go - 拦截 Go 中的错误和 panic ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52397049/

相关文章:

c++ - 如何找到 USER 44 PANIC 的原因?

linux-kernel - 在/init 之后退出代码 = 0x00000004 的内核 panic

go - 如何检查通过多部分形式发布的文件是否为图像类型并且小于 Go 中给定的最大大小?

javascript - Nodejs 中的 log4js-node 未记录到文件

php - 停止为PHP提供错误number_format

file - Golang 群文件锁定抛出 panic : runtime error: invalid memory address or nil pointer dereference

go - Google的logadmin中的条目迭代器从不返回迭代器。

json - 如何创建一个可以由 Gin 序列化为 json 的排序键值映射?

go - 如何在 go/goa 框架中正确弃用 API 端点?

c++ - 处理来自Unrar DLL的错误