首页 >后端开发 >Golang > 正文

golang怎么自定义错误

原创2020-01-14 11:51:020966

在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教程

以上就是golang怎么自定义错误的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码
  • 相关标签:golang
  • 本文原创发布php中文网,转载请注明出处,感谢您的尊重!
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • swoole的方法:swoole可以在ErrorHandlerInterface接口中,当开启DEBUG.ENABLE的时候,则处理有效。
    在Yii2处理中我们了解了Yii2注册的原理并知道的发生后,Yii2将调用 yii\web\ErrorHandler 类对象的handleException和handleError方法
    java指页面的方法:页面,在web.xml中调用的页面。
    apache从入门到精通:本文为大家介绍了查找日志的方法,具有一的参考价值,希望可以帮助到大家。要查找日志,可以查看/etc/apache2/apache2.conf文件。
    yii2500的方法是:1、创建ErrorHandler,继承yii\base\ErrorHandler抽象类,然后这个父类中的抽象方法;2、创建视图文件;3、修改配置文件。
    ThinkPHP提供了带的提示页面,但是并不美观,所以我们一般需要、成功、异常提示页面,本文就来为大家介绍一下这些页面的方法。
    下面由WordPress技巧栏目给大家介绍WordPress主题和背景时出现致命的解决方法,希望对需要的朋友有所帮助!
    java引用类出现:“找不到符号”的解决方法:1、先对引用的类进行编译,然后在编译java文件的命令中加上文件所在文件夹名。
    golang gin框架处理:1、默认的处理是errors.New("信息"),这个信息通过error类型的返回值进行返回。2、
    golang中可以使用error方法将作为返回值逐层往上抛。go语言中一般有三种处理策略:1、返回和检查值。2、类型。3、隐藏内部细节的处理。
    java添加页面的方法:先在web.xml中开启提示并连接提示页面error.jsp。然后提示页面内容即可。
    yii2页面的方法:先在views/site/error.php文件中设置页面样式。
    php捕捉的方法:1、使用“try catch”语句捕获;2、通过“set_exception_handler”方法捕获,该方法用于设置用户的异常处理函数。
    golang使用panic抛出一条信息,从它的参数类型可以看到它可以抛出任意类型的信息。recover()用于将panic的信息捕捉。recover必须在panic之前的defer语句中。
    golang中创建的方法:创建最简单的方法是使用errors包中的New函数。
    在MySQL中有很多类型的增ID,每个增ID都设置了初始值,然后按照一的步长增加,只要了字节长度,那就会有上限,如果达到上限再次添加,则会报主键冲突,解决方法可以考虑使用“bigint
    Golang中引入两个内置函数panic和recover来触发和终止异常处理流程,同时引入关键字defer来延迟执行defer后面的函数。
    解决方法:打开目录有书签的文档,选中文章中的标题;2、在“开始”选项卡中的“样式组”中选择“标题的样式”(一般第几层标题就选择标题几);3、重新建立目录索引即可。
    HTML入门教程:列表不仅仅是一列项目,而是项目及其注释的组合。列表以 <dl> 标签开始。 每个列表项以 <dt> 开始。
    matlab创建函数的方法:首先在命令窗口中输入“edit”;然后在弹出的函数编辑框中输入函数为“function f=myfun(x,y)”,其中参数“f”表示函数的输出,参数“myfun”表示这个函数的函数文件名

    专题推荐

    推荐视频教程
  • Go编程基础视频教程Go编程基础视频教程
  • Go参考手册Go参考手册
  • Go 中文开发手册Go 中文开发手册
  • go语言基础与基本函数go语言基础与基本函数
  • 视频教程分类