索引越界引发panic
func getOver(s []int) {
length := len(s)
fmt.Println(s[length])
}
func main() {
s := []int{1, 2, 3}
getOver(s)
fmt.Println("finish")
}
输出
panic: runtime error: index out of range
goroutine 1 [running]:
main.getOver(...)
F:/GoProjs/kf/main.go:9
main.main()
F:/GoProjs/kf/main.go:14 +0x12
exit status 2
使用recover
func getOver(s []int) {
defer func() {
if p := recover(); p != nil {
fmt.Println("panic")
}
}()
length := len(s)
fmt.Println(s[length])
}
func main() {
s := []int{1, 2, 3}
getOver(s)
fmt.Println("finish")
}
输出
panic
finish
网友评论