MST
星途 面试题库

面试题:Go函数的多返回值与错误处理

编写一个Go函数,该函数接收两个整数作为参数,进行除法运算,并返回商和可能发生的错误。如果除数为零,返回自定义的错误信息。同时说明在Go语言中处理函数返回错误的最佳实践。
37.2万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "errors"
    "fmt"
)

// 自定义错误
var DivideByZeroError = errors.New("除数不能为零")

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, DivideByZeroError
    }
    return a / b, nil
}

在Go语言中处理函数返回错误的最佳实践:

  1. 尽早返回错误:一旦检测到错误,立即返回,避免在错误状态下继续执行不必要的代码。
  2. 使用特定的错误类型:如上述代码自定义DivideByZeroError错误,这样调用者可以准确判断错误类型。
  3. 记录错误:在合适的地方(如日志)记录错误信息,以便调试和故障排查。
  4. 向调用者传递错误:如果当前函数无法处理错误,将错误返回给调用者,让调用者决定如何处理。
  5. 错误处理逻辑简洁:避免在错误处理代码中添加过多复杂逻辑,保持代码清晰。