MST

星途 面试题库

面试题:Go语言中如何在函数调用链中传递错误并进行适当处理

假设你有一个函数调用链:函数A调用函数B,函数B调用函数C,函数C可能会返回错误。请描述如何在Go语言中正确地将函数C的错误传递回函数A,并在函数A中进行合适的错误处理。请给出代码示例。
45.7万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试

在Go语言中,通过在函数返回值中传递错误来处理错误。以下是实现将函数C的错误传递回函数A并进行处理的代码示例:

package main

import (
    "fmt"
)

func functionC() error {
    // 这里模拟一个错误返回
    return fmt.Errorf("function C error")
}

func functionB() error {
    err := functionC()
    if err != nil {
        return err
    }
    return nil
}

func functionA() {
    err := functionB()
    if err != nil {
        fmt.Printf("Caught error in function A: %v\n", err)
    }
}

你可以在main函数中调用functionA来触发整个调用链:

func main() {
    functionA()
}

在上述代码中:

  1. functionC函数返回一个错误。
  2. functionB调用functionC,如果functionC返回错误,functionB直接返回该错误。
  3. functionA调用functionB,并在functionA中检查functionB返回的错误,如果有错误则进行相应的处理。