首页后端开发其他后端知识Golang自定义错误的方式是什么,有什么条件

Golang自定义错误的方式是什么,有什么条件

时间2024-03-26 07:16:03发布访客分类其他后端知识浏览582
导读:这篇文章给大家分享的是“Golang自定义错误的方式是什么,有什么条件”,文中的讲解内容简单清晰,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下“Golang自定义错误的方式是什么,有什么条件”...
这篇文章给大家分享的是“Golang自定义错误的方式是什么,有什么条件”,文中的讲解内容简单清晰,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下“Golang自定义错误的方式是什么,有什么条件”吧。


在go里定义错误异常的方式有这么两种,但都需要你的返回值是error类型的。

func Control() error {

      //xxxx
}

第一种方式是使用golang标准库包errors 来定义错误。使用方法很是简单,只需要 return errors.New(“string”) 。 这样就是一个最简单的错误返回。

第二种方式是借用struct结构体,创建一个struct的Error()方法,注意这个方法名是Error,不然会出现下面的Bug, 找不到Error方法。

./er.go:25: cannot use equalError literal (type equalError) as type error in return argument:
    equalError does not implement error (missing Error method)

下面是一个比较完整的Error的使用方法。不仅有errors,还有struct Error()方式.

#http://xiaorui.cc
package main
 
import (
	"errors"
	"fmt"
)
 
type equalError struct {

	Num int
}

 
//方法名字是Error()
func (e equalError) Error() string {

	return fmt.Sprintf("你现在是数字是 %d ,还是超了55", e.Num)
}

 
func Equal(n int) (int, error) {
    
	if n >
 55 {

		return -1, errors.New("超过了55") //生成一个简单的 error 类型
	}

	return n, nil
}

 
func DiyEqual(n int) (int, error) {
    
	if n >
 55 {

		return -1, equalError{
Num: n}
 // 会调用equalError的Error方法
	}

	return n, nil
}

 
func main() {
    
	//使用errors.New生成error对象
	if result, err := Equal(100);
 err != nil {

		fmt.Println("错误:", err)
	}
 else {

		fmt.Println("结果:", result)
	}
    
 
	//不适用erros,自定义错误方式.
	if result, err := DiyEqual(100);
 err != nil {

		fmt.Println("错误:", err)
	}
 else {

		fmt.Println("结果:", result)
	}

 
}
    

以上就是关于“Golang自定义错误的方式是什么,有什么条件”的介绍了,感谢各位的阅读,希望文本对大家有所帮助。如果想要了解更多知识,欢迎关注网络,小编每天都会为大家更新不同的知识。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Golang自定义错误的方式是什么,有什么条件
本文地址: https://pptw.com/jishu/653343.html
Golang设置定时任务的操作是什么, 代码如何写 PHP的autoload函数怎样使用?要注意什么?

游客 回复需填写必要信息