Loading... # Go自定义error 在 Go 语言中,可以通过实现 Error() 方法自定义错误类型。 在 Go 语言中,Error() 方法是一个内置方法,用于返回一个字符串,表示当前错误的描述信息。自定义错误类型只需要实现 Error() 方法即可,该方法返回一个字符串,表示错误的描述信息。 例如,我们可以定义一个自定义的错误类型 MyError,如下所示: ```go type MyError struct { Msg string // 错误信息 Code int // 错误代码 } func (e *MyError) Error() string { return fmt.Sprintf("%d: %s", e.Code, e.Msg) } ``` 在上面的代码中,我们定义了一个 MyError 结构体类型,包含了 Msg 和 Code 两个字段,分别表示错误信息和错误代码。然后,我们实现了 Error() 方法,返回一个格式化后的字符串,其中包含了错误代码和错误信息。 使用自定义的错误类型也非常简单,只需要创建一个该类型的实例,然后将其返回即可。例如: ```go func foo() error { return &MyError{Msg: "something went wrong", Code: 500} } ``` 在上面的代码中,我们定义了一个名为 foo() 的函数,该函数返回一个 MyError 类型的实例。在该实例中,我们设置了错误信息为 "something went wrong",错误代码为 500。 这样,当 foo() 函数返回时,我们就可以通过类型断言来判断返回的错误类型是否为 MyError 类型,并获取其错误信息和错误代码,例如: ```go err := foo() if e, ok := err.(*MyError); ok { fmt.Printf("Error code: %d, error message: %s\n", e.Code, e.Msg) } else { fmt.Println("Unknown error") } ``` 在上面的代码中,我们首先调用 foo() 函数,获取其返回的错误实例。然后,我们使用类型断言判断该错误实例是否为 MyError 类型,如果是,则输出其错误信息和错误代码,否则输出 "Unknown error"。 猜你想看 Go自定义error Vue Router 多个路由的概念和实现方式详解 使用shell脚本实现服务器CPU负载过高自动推送 每日一学:PHP 中的array_diff_uassoc函数详解 Dell 服务器风扇调速指南:让你的服务器更安静 每日一学:PHP 中的array_product函数详解 nuxt3使用axios Golang语言优势和其他语言的对比 PHP+Vue实现留言板功能 HTML5、JS使用canvas绘画 最后修改:2023 年 02 月 19 日 © 允许规范转载 赞 1 如果觉得我的文章对你有用,请随意赞赏