Golang 如何处理WaitGroups的错误
在运行多个 goroutine 时,我们有可能得到一些 panic 。 为了处理这种情况,我们可以使用 通道 和 Waitgroups 的组合来成功处理错误,而不是退出进程。
我们假设有一个函数,当被调用时返回一个 panic ,这将自动杀死程序的执行,因为当 panic 被调用时,它在内部调用 os.Exit() 函数。我们要确保这个恐慌不会关闭程序,为此,我们将创建一个通道来存储错误,然后我们就可以在 选择 语句的帮助下使用这个通道来打印错误。
下面显示的代码的主要思想是–
- 创建两个通道,一个用来存放错误,另一个用来表示 WaitGroup。
-
一个 goroutine ,用来等待WaitGroup完成,也用来在完成后关闭通道。
-
select 语句用于监听错误或 WaitGroup 的完成。
例子
考虑一下下面的代码。
输出
当我们运行这段代码时,它将产生以下输出 —
应该注意的是,你的机器的输出可能有所不同,但可以肯定的是,你会遇到这个错误信息。