go语言学习笔记(10) 错误处理
来源:互联网 发布:可以看耽美小说的软件 编辑:程序博客网 时间:2024/06/05 06:26
error接口
type error interface{
Error() string
}
实例
func Foo(param int)(n int, err error){...}
n, err := Foo(0)
if err != nil{错误处理}
//详细使用方法,需要结构体、接口、类型转换等相关知识,待补充
defer
1、函数结束时,defer语句自动被执行
2、defer语句采用先进后出的方式,即,最后的defer先调用
3、可以通过匿名函数的方法,实现复杂的清理工作
defer func(){...}()//括号必须有,表示defer语句中定义的匿名函数直接执行
panic()
func panic(interface{})
可接收任意类型的参数
语言内置的结束goroutine的函数
调用时,函数执行流程终止,运行panic()语句之前的defer语句
返回到调用函数后,继续逐层向上执行panic()函数
直到所属goroutine中所有正在执行的函数被终止
错误信息将被报告,包括调用panic()函数时的实参
整个过程称为:错误处理流程
recover()
func recover() interface{}
用于终止错误处理流程,即,打断panic()函数的自动逐层向上调用的过程
一般调用panic()的函数中,必须在调用panic之前加上调用recover()的defer语句
否则会导致该goroutine所属进程打印异常信息后直接退出
实例
defer func(){
if r := recover(); r != nil{
fmt.Println(r)
}
}()
阅读全文
0 0
- go语言学习笔记(10) 错误处理
- Go语言学习九:接口、错误处理
- Go语言错误处理
- GO 语言错误处理
- Go语言错误处理
- Go语言学习笔记10
- go语言学习---错误
- Go语言学习(七)闭包和错误处理
- Go语言学习笔记
- Go语言学习笔记
- go语言学习笔记
- Go语言学习笔记
- GO语言学习笔记
- Go语言学习笔记
- GO语言学习笔记
- Go语言学习笔记
- Go语言学习笔记
- Go语言学习笔记
- 将IE8中不兼容的代码进行修改的方法
- 关于httpClient理解
- 前端问题整理
- 输入字符
- 基于HTML5的数据可视化方法有哪些
- go语言学习笔记(10) 错误处理
- OSI 七层模型及各层功能
- 【Unity3d】简单的UGUI序列帧播放
- 我自己30岁前的理想规划
- 在Perl中使用Getopt::Long模块来接收用户命令行参数
- C语言二叉排序树的创建
- String 的各种方法
- linux挂载指令
- Python学习笔记 --- 实现日志管理服务