gpt4 book ai didi

go - 如何在函数 panic 之前写入控制台?

转载 作者:IT王子 更新时间:2023-10-29 02:06:58 25 4
gpt4 key购买 nike

在 C 中,您可以使用 unistd.h 库中的函数 write()write()printf() 更快,并且允许您在段错误破坏您的代码之前写入标准输出(或文件)。

调试时,我希望在我的 Go 代码崩溃之前写入标准输出。一般来说,我该怎么做?

我有以下代码(用于查找一串单词中最短的单词),它令人 panic ,我想通过插入写入方法来隔离位置。

func FindShort(s string) int {
i := 0
j := 0
min := math.MaxInt32
for true {
for s[i] == ' ' {
i++
j++
}
for s[j] != ' ' && j < len(s) {
j++
}
if j > i && (j - i) < min {
min = j - i
}
i = j
if j == len(s) {
break
}
}
return min
}

最佳答案

您可以使用调用 recover 函数的延迟函数,下面的函数将导致“Recovered panic here”

defer func() {
r := recover()
if r != nil {
fmt.Println("Recovered", r)
}
}()

panic("panic here")

关于go - 如何在函数 panic 之前写入控制台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55923271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com