go语言中错误处理方式
go语言中错误处理方式:
defer,panic,recover。
go中可以抛出一个panic异常,然后在defer中,通过recover捕获这个异常,然后进行处理。
示例:err1.go代码
package errlabimport "fmt"//defer recover 来处理错误func Testerr(){//使用defer+recover来捕获和处理异常//匿名函数defer func(){err:=recover() //recover()是内置函数,可以捕获异常if err!=nil{ //捕获到错误fmt.Println("err=",err)}}()num1:=10num2:=0res:=num1/num2fmt.Println("res=",res) //err= runtime error: integer divide by zero
}
main主函数
func main() {//错误err的练习errlab.Testerr()fmt.Println("错误后是否会输出@!!")}
输出结果:
err= runtime error: integer divide by zero
错误后是否会输出@!!
上面的异常,没有影响主程序的代码,主程序继续向下执行了
“”“错误后是否会输出@!”内容---》说明主程序继续执行了。
自定义错误类型:
func Dingyierr(){callconfig()fmt.Println("callconfig的函数以及下面的代码!")}//函数去读取配置文件config。int的信息
//如果文件名不正确就是返回错误
func readconfig(name string )(err error){if name=="config.ini"{return nil}else {return errors.New("读取文件错误...") //自定义错误内容事项}
}//调用上面的函数readconfig()
func callconfig(){err:=readconfig("config2.ini")if err!=nil{//如果读取文件发送错误,就是输出这个错误,并终止程序panic(err) //panic后,就是终止了程序继续执行了!!!}fmt.Println("callconfig继续执行。。。。")
}
go语言中错误处理方式相关推荐
- C语言中文件读写方式r 的作用,C语言文件读写操作主要函数及其用例
C语言把磁盘文件看成是字符(或字节)的序列,按照存储信息的形式来说,文件主要是有文本文件和二进制文件.文本文件由一个个字符组成,每个字节存放一个ASCII码制,代表一个字符.二进制文件把内存中的数据按 ...
- 【chatGPT】01 数组、二维数组在不同语言中的存储方式
问:数组在C++中的存储方式是什么?Java呢?Python呢?可以举例吗? C++ 在C++中,数组是连续分配的内存单元,具有相同的类型和大小. C++会将数组的第一个元素存储在指向数组的指针中,因 ...
- c语言中错误executing,C语言编程中常见问题解读.doc
C语言编程中常见问题解读 为什么vc6打开的文件却不能编译1 为什么一个vc6工程中有两个main函数不能编译成功?我想写两个程序怎么办?2 为什么v6不能编译程序,生成信息说compile和link ...
- c语言中一般命名方式,C语言常见命名规则
1 常见命名规则 比较著名的命名规则首推匈牙利命名法, 这种命名方法是由Microsoft程序员查尔斯·西蒙尼(Charles Simonyi) 提出的. 其主要思想是"在变量和函数名中加入 ...
- c语言中错误c2062,C/C++编译器错误消息大全
C/C++编译器错误消息大全 初始值设定项可能括在了括号中.为避免该问题,请将声明符括在括号中或使其成为 typedef. 在编译器将表达式作为类模板参数检测时也可能导致此错误;使用 typename ...
- c语言中错误为ffblk未定义,C - 错误没有定义和存储未知
我有这个代码删除目录.我有header1.h,header1.c,main.c. 我得到一些错误,但一个是我更难以理解的错误是: (1)存储大小ffblk未知. 另外,我有疑问如何定义ffblk的属性 ...
- go语言中错误的处理和实现自己的错误处理类型
package mainimport ("errors""fmt" )func main() {/*错误:在可能出现问题的地方出现问题, 如打开一个文件打开失败 ...
- c语言中错误c2228,错误:C2228:''必须有class/struct/union
我是一个很长时间的Java用户用Qt学习C++,我在理解方法如何工作方面遇到了很多麻烦.现在,我正在试图找出数据库,并试图用标题简化我的代码.通常在Java中我只有一个名为DatabaseContro ...
- 怎么让c语言程序右边对齐,c语言中的对齐方式
对齐有自然对齐(Natural)和指点对齐(Assign). 自然对齐指数据类型本身的对齐方式,例如 int为4,float为4,double为8. 指定对齐为编译器默认的对齐方式(VC默认为8)或用 ...
- c语言中错误c2061,error C2061: 语法错误: 标识符“_Wherenode”
昨天同事说,类里加了个静态的vector类型的公共成员后,在其他类里调用,操作该成员,编译出错. 1>d:\program files\microsoft visual studio 9.0\v ...
最新文章
- 大脑的学习方式如何,机器学习与生物学习的联系将提供「答案」
- 会话跟踪技术Cookieless
- python微信自动机器人
- 30分钟带你熟练性能优化的那点儿事儿(案例说明)
- matlab/simulink常见问题汇总
- QQ2009任务栏的QQ图标怎么隐藏
- Alone in Office
- lisp方格网法计算土方量_CAD土方软件方格网法与三角网法相结合,准确计算土方量...
- java线程安全问题原因及解决办法
- 用idea建立jsp项目_用idea创建maven项目,配置tomcat详解
- 图灵机概念的javascript演示
- 微服务学习之Hystrix容错保护【Hoxton.SR1版】
- 关于openstack部分计算节点无法实现热迁移问题描述
- 使用快捷工具搜狗词库转txt和mmseg
- echarts地图添加图片
- WindowsX64下tftp的安装
- 几款基于ODE的机器人仿真软件
- XML解析之 MSXML应用总结 开发篇(上)
- 数据可视化大屏的4大优势盘点,超实用!
- python基础读后感_《Python基础教程读书笔记》