众所周知,当出现panic时,会在标准输出中产生一个堆栈跟踪信息(Playground链接)。
panic: runtime error: index out of range
goroutine 1 [running]:
main.main()
/tmp/sandbox579134920/main.go:9 +0x20
看起来当你从惊恐中恢复过来时,recover()
只返回一个描述引起惊恐的错误(演示链接)。
runtime error: index out of range
我的问题是,是否可以将写入标准输出的堆栈跟踪存储起来?这提供了比字符串runtime error: index out of range
更好的调试信息,因为它显示了导致恐慌的文件中的确切行。
runtime/debug
来捕获堆栈跟踪,可以参考这里。不过我很好奇其他贡献者是否有更好的解决方案。 - hlin117