登录
首页 >  Golang >  Go问答

如何在函数发生恐慌之前写入控制台?

来源:stackoverflow

时间:2024-04-17 22:27:30 425浏览 收藏

golang学习网今天将给大家带来《如何在函数发生恐慌之前写入控制台?》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

问题内容

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

调试时,我希望在 go 代码出现混乱之前写入标准输出。一般来说,我该怎么做?

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

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
}

解决方案


您可以使用调用恢复函数的延迟函数,下面的函数将导致“此处恢复恐慌”

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

panic("panic here")

理论要掌握,实操不能落!以上关于《如何在函数发生恐慌之前写入控制台?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>