面试题答案
一键面试在Go语言的并发函数中,可以通过以下方式结合defer
语句和recover
函数来捕获并处理可能出现的异常:
- 在并发函数内部使用
defer
语句注册一个匿名函数,该匿名函数中调用recover
函数。 - 当有异常发生时,
recover
函数会捕获到异常,从而避免程序崩溃。
示例代码如下:
package main
import (
"fmt"
)
func main() {
go func() {
defer func() {
if r := recover(); r != nil {
fmt.Println("捕获到异常:", r)
}
}()
panic("模拟一个异常")
}()
// 防止主程序退出
select {}
}
在上述代码中:
go func()
启动了一个并发函数。defer
语句注册的匿名函数中通过recover()
捕获可能发生的异常。panic("模拟一个异常")
模拟了一个异常情况,此时recover
函数会捕获到这个异常,并打印出相应的提示信息。select {}
语句防止主程序退出,以便观察并发函数中的异常处理情况。