GO语言-自定义error
目录
前言
内置包创建错误对象
自定义error接口的实现
前言
error是go语言中的一种数据类型,内置接口。定义了一个方法Error() string
error接口
error接口的实现--errorString结构体,实现Error方法。
内置包创建错误对象
go语言内置的errors包下的New()函数和fmt包下的Errorf(),都可以创建一个error对象。
func main() {err1 := errors.New("通过errors.New()创建的错误")fmt.Printf("err1:%v, 类型:%T\n", err1, err1)err2 := fmt.Errorf("通过fmt.Errorf()创建的错误")fmt.Printf("err2:%v, 类型:%T\n", err2, err2)
}
自定义error接口的实现
从前言中可以看出来,error接口十分简单。要实现error接口,只需要自定义一个结构体,实现Error()方法即可。
下面我们就自定义实现一下errror接口。函数输入年龄的值进行判断,过大过小都进行报错。
type AgeError struct {msg stringage int
}func (a *AgeError) Error() string {return a.msg + ", 年龄是:" + strconv.Itoa(a.age)
}func main() {age, err := ageVerification(200)if err != nil {fmt.Println(err)} else {fmt.Println(age)}
}func ageVerification(age int) (int, error) {if age > 150 || age < 0 {return age, &AgeError{"年龄不合法", age}}return age, nil
}
GO语言-自定义error相关推荐
- c语言自定义创建文件,c语言自定义文件名?
阿晨1998 1.用C语言自定义文件名,涉及到的相关知识如下:_finddata_t结构体:struct _finddata_t {unsigned attrib ; time_t time_cr ...
- 聊一聊Go语言的error处理
前言 Go语言的错误处理是一个常见的操作,经常可以见到一个函数返回错误类型(error),后续通过if err != nil来判断错误以及错误类型.这一次尝试通过Go内置的error接口,聊一聊Go语 ...
- R语言自定义多分类混淆矩阵可视化函数(mutlti class confusion matrix)、R语言多分类混淆矩阵可视化
R语言自定义多分类混淆矩阵可视化函数(mutlti class confusion matrix).R语言多分类混淆矩阵可视化 目录
- R语言自定义函数计算dataframe每列中的缺失值NA的个数、缺失值问题及其填充示例
R语言自定义函数计算dataframe每列中的缺失值NA的个数.缺失值问题及其填充示例 目录
- R语言std.error函数计算平均值的标准误差实战
R语言std.error函数计算平均值的标准误差实战 目录 R语言std.error函数计算平均值的标准误差实战 #手动编码标准误差计算
- R语言自定义变成进行决策曲线分析DCA曲线绘制(Decision Curve Analysis)
R语言自定义变成进行决策曲线分析DCA曲线绘制(Decision Curve Analysis) 我们可能使用别的语言获得了机器学习模型以及对应的预测概率和标签,我们想直接使用这些信息进行DCA曲线的 ...
- C语言自定义实现string字符串的算法(附完整源码)
C语言自定义实现string字符串的算法 string字符串的定义pstring.h(完整源码) string字符串的实现pstring.cpp(完整源码) string字符串的定义pstring.h ...
- c语言中error c2109 是什么错,求c语言改错 error C2109: 下标要求数组或指针类型?...
求c语言改错 error C2109: 下标要求数组或指针类型? /*魔方阵*/ #include int main() { int i,j,a,n; int arr[100][100]; print ...
- 《零基础看得懂的C语言入门教程 》——(十一)C语言自定义函数真的很简单
一.学习目标 了解C语言的自定义函数的使用方法 了解C语言自定义函数的传参 了解C语言自定义函数的返回值 目录 C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言. 第一篇:(一)脱离学习误区 ...
最新文章
- C语言字符串哪个头文件,如果在程序中要使用C语言的字符串处理函数,应在程序中包含这哪个头文件。...
- 全面分析再动手的习惯:链表的反转问题(递归和非递归方式)
- 使用java9的uuid生成方式,让uuid生成速度提升一个档次...
- 使用Rekit开发可扩展的前端应用
- 当前不会命中断点.还没有为该文档加载任何符号解决
- skycut刻字机工厂经纬线模切机车间在哪里
- spring定时任务详解(@Scheduled注解)多线程讲解
- python虚拟环境打包deb_可以为python脚本创建deb包吗?
- 删除顺序表中指定范围的元素
- c语言用户管理系统的知识,C语言系统用户管理系统
- 智慧城市近两年来受到国家高度重视
- python安装笔记_Python学习笔记(一)python的安装和配置
- send/recv与socket
- 软件测试项目实战(web+app+h5+小程序)
- 数据库中的操作(语法)
- 安卓开发指南!程序员如何自我学习和成长?终获offer
- 只用2秒,轻松获取一线所有城市公交数据!
- Mac一直要求输入密码怎么办?Mac一直弹输入密码窗口或提示存储钥匙串解决方法
- 理解vue-admin-template模板,连接后端改造登陆功能
- MySQL 查询一个表的大小