go defer recover 无法捕获数组越界panic

codelover
  • 1
新手上路,请多包涵

go 为什么这个defer中的recover 无法捕获数组越界的panic
image.png

回复
阅读 1.7k
2 个回答

你这我编译都编译不过

编译会报错的,可以参考如下代码


func main() {
    var arr [4]int
    defer func() {
        e := recover()
        if e != nil {
            fmt.Println(e)
        }
    }()
    var i = 10
    arr[i]=6
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏