面试题答案
一键面试package main
import (
"fmt"
)
func main() {
resultCh := make(chan interface{})
go func() {
defer func() {
if r := recover(); r != nil {
resultCh <- r
}
}()
// 模拟可能出现运行时错误的函数
var num int
num = 1 / 0 // 这里会触发除零错误
resultCh <- num
}()
for i := 0; i < 1; i++ {
select {
case res := <-resultCh:
if err, ok := res.(error); ok {
fmt.Printf("捕获到错误: %v\n", err)
} else {
fmt.Printf("正常结果: %v\n", res)
}
}
}
close(resultCh)
}