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