goroutine中使用recover,解决协程中出现panic,导致程序崩溃的问题。recover panic 协程的错误处理
package main
import (
"fmt"
"time"
)
//goroutine中使用recover,解决协程中出现panic,导致程序崩溃的问题。
func sayhello() {
for i := 0; i < 10; i++ {
time.Sleep(time.Second)
fmt.Println("say hello")
}
}
func test() {
//这里可以使用错误处理机制defer + recover来解决
defer func() {
//使用匿名函数捕获test抛出的panic
//是一个内建的函数,可以让进入令人恐慌的流程中的 goroutine 恢复过来。
// recover仅在延迟函数中有效。
//在正常的执行过程中,调用 recover 会返回 nil 并且没有其他任何效果。
//如果当前的 goroutine 陷入恐慌,调用 recover 可以捕获到 panic 的输入值,
//并且恢复正常的执行。recover只有在defer调⽤的函
goroutine中使用recover,解决协程中出现panic,导致程序崩溃的问题。recover panic 协程的错误处理最先出现在Python成神之路。
共有 0 条评论