Files
bulma/recover_goroutine_demo.go
T

34 lines
636 B
Go

package main
import (
"fmt"
"time"
)
// GoroutineRecover 协程独立恢复,不影响主程序
func GoroutineRecover() {
// 协程 1:带恢复
go func() {
defer func() {
if err := recover(); err != nil {
fmt.Printf("[协程1] 捕获异常: %v\n", err)
}
}()
panic("异步任务执行失败")
}()
// 协程 2:正常执行
go func() {
fmt.Println("[协程2] 异步任务执行成功")
}()
time.Sleep(200 * time.Millisecond)
}
func main() {
// 协程安全恢复演示
GoroutineRecover()
println("----------------------------------------")
fmt.Println("主程序执行完成,无崩溃退出")
}