1、recover的使用
示例:
package main
import "fmt"
func testa() {
fmt.Println("aaaaaaaaaaaaaaaaa")
}
func testb(x int) {
//設置recover,recover只能放在defer后面使用
defer func() {
//recover() //可以打印panic的錯誤信息
//fmt.Println(recover())
if err := recover(); err != nil { //產生了panic異常
fmt.Println(err)
}
}() //別忘了(), 調用此匿名函數
var a [10]int
a[x] = 111 //當x為20時候,導致數組越界,產生一個panic,導致程序崩潰
}
func testc() {
fmt.Println("cccccccccccccccccc")
}
func main() {
testa()
testb(20) //當值是1的時候,就不會越界,值是20的時候,就會越界報錯。
testc()
}
執行結果:
aaaaaaaaaaaaaaaaa runtime error: index out of range //值越界 cccccccccccccccccc
