文章目录
一、错误处理
知识点:
panic
recover()
代码1(正常运行代码):
package main
import (
"fmt"
)
func test() {
fmt.Println("test1")
//panic("test panic")
fmt.Println("test2")
}
func main() {
test()
fmt.Println("main1")
}
运行结果1:
[root@bogon 10]# go run test.go
test1
test2
main1
代码2(panic):
package main
import (
"fmt"
)
func test() {
fmt.Println("test1")
panic("test panic")
fmt.Println("test2")
}
func main() {
test()
fmt.Println("main1")
}
运行结果2:
[root@bogon 10]# go run test.go
test1
panic: test panic
goroutine 1 [running]:
main.test()
/root/temp/go/10/test.go:9 +0x95
main.main()
/root/temp/go/10/test.go:14 +0x22
exit status 2
代码3(defer & recover):
package main
import (
"fmt"
)
func test() {
defer func() {
if p := recover(); p != nil {
fmt.Println("recover:", p)
}
}()
fmt.Println("test1")
panic("test panic")
fmt.Println("test2")
}
func main() {
test()
fmt.Println("main1")
}
运行结果3:
[root@bogon 10]# go run test.go
test1
recover: test panic
main1