MST

星途 面试题库

面试题:Go中error接口的常见实现方式

在Go语言中,error接口是错误处理的基础,请描述至少两种常见的实现error接口的方式,并给出简单示例代码。
33.5万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
  1. 使用 fmt.Errorf 函数fmt.Errorf 函数用于根据格式化字符串创建一个新的 error 实例。这是一种非常简洁方便的方式来生成错误。
package main

import (
    "fmt"
)

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, fmt.Errorf("division by zero")
    }
    return a / b, nil
}
  1. 自定义错误类型结构体并实现 error 接口: 先定义一个结构体类型,然后为该结构体类型实现 error 接口的 Error 方法。
package main

import (
    "fmt"
)

// 自定义错误结构体
type MyError struct {
    ErrMsg string
}

// 实现 error 接口的 Error 方法
func (m MyError) Error() string {
    return m.ErrMsg
}

func doSomething() error {
    return MyError{ErrMsg: "this is a custom error"}
}