MST

星途 面试题库

面试题:Go中如何通过Channel传递和处理简单错误

请编写一段Go代码,在一个goroutine中模拟一个可能出错的操作(例如文件读取),并通过Channel将错误传递给主goroutine进行处理。要求展示如何正确创建Channel、发送和接收错误信息。
38.3万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "fmt"
    "os"
)

func main() {
    errCh := make(chan error)

    go func() {
        file, err := os.Open("nonexistentfile.txt")
        if err != nil {
            errCh <- err
        } else {
            defer file.Close()
            errCh <- nil
        }
    }()

    if err := <-errCh; err != nil {
        fmt.Println("Error:", err)
    } else {
        fmt.Println("Operation completed successfully.")
    }
}