在没有recover的情况下,painc会影响到哪个层次?

来源:10-7 面试题

Ahlemarg

2022-06-14

我觉得该题的答案应该选择 A

因为 panic会根据goroutine的调用顺序 来倒序抛出错误, 直到抛到main方法为止,

当处在main方法并且没有recover时, 则会导致程序直接崩溃.

package main

import (
	"fmt"
	"time"
)

func main() {
	go func() {
		for {
			fmt.Println("goroutine A.")
		}
	}()

	go func() {
		time.Sleep(1 * time.Microsecond) // 为了确保 A 能跑起来
		panic("goroutine B panic.")
	}()

	time.Sleep(1 * time.Second)
	fmt.Println("Main goroutine.") // !!! 当没有recover时 会影响到main goroutine的正常执行.
}

老师您看我的理解是否正确?

写回答

2回答

Moody

2022-06-14

已经改了

0
0

Moody

2022-06-14

你说的是对的,这里弄错了,感谢反馈

0
0

深入Go底层原理,重写Redis中间件实战

深入Go语言原理+Go重写Redis

474 学习 · 172 问题

查看课程