管道的注意事项和细节(3)|学习笔记

简介: 快速学习管道的注意事项和细节(3)

开发者学堂课程【Go 语言核心编程 - 面向对象、文件、单元测试、反射、TCP 编程:管道的注意事项和细节(3)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/626/detail/9764


管道的注意事项和细节(3)

 

说明:如果我们起了一个协程,但是这个协程出现了 panic,如果我们没有捕获这个panic,就会造成整个程序崩溃,这时我们可以在 goroutine 中使用 recover 来捕获panic,进行处理,这样即使这个协程发生的问题,但是主线程仍然不受影响,可以继续执行。

 

一、 goroutine 中使用 recover,解决协程中出现 panic,导致程序崩溃问题【案例演示】

如果在协程中出现 panic,那么整个程序就会崩溃。接下来进行举例。

新建一个文件,demo03,写一个文件 main.go。

Package main

Import (

“fmt”

“time”

)

//函数

Func  sayhello(){

For I :=0; I < 10; i++{ //休眠一句输出一句

Time. Sleep(time.second)

Fmt.println(“hello world”)

}

}

//函数

Func test()  {

//这里我们可以使用defer+ recover

Defer func(){

//捕获test抛出的panic

If err := recover();err ! = ni1{

Fmt.println(“test() 发生错误”,err)

}

}()

//定义了一个map

Var mymap map [int] string

Mymap[0] = “golang ”//error

}

Func main() {

Go sayhello

go test()

for I : = 0; I < 10; i++{

fmt.println(“main()  ok=”, i)

Time. Sleep(time.second)

}

}

运行代码之后发现 panic,为此引进代码错误机制,进行捕获。

相关文章
|
6月前
|
缓存 Ubuntu 网络协议
Linux系统编程之文件I/O函数的使用:介绍文件I/O函数的基本概念、用法和实现方式
Linux系统编程之文件I/O函数的使用:介绍文件I/O函数的基本概念、用法和实现方式
105 1
|
6月前
|
监控 安全
管道的三种使用方案中,唯一正确而安全的使用方法
管道的三种使用方案中,唯一正确而安全的使用方法
20 0
|
编译器 Scala 开发者
函数使用注意事项和细节2|学习笔记
快速学习函数使用注意事项和细节2。
|
网络协议 程序员 测试技术
管道的注意事项和细节(2)|学习笔记
快速学习管道的注意事项和细节(2),使用 select 可以解决从管道取数据的阻塞问题【案例演示】 我们在管道读取数据的时候要 close 管道,如果没有关闭,这个时候他会阻塞,而且会发生死锁,但有些情况如想在不想关闭的情况下也不被阻塞的话,我们就要使用 select
管道的注意事项和细节(2)|学习笔记
|
Scala 开发者
包对象注意事项和细节说明|学习笔记
快速学习包对象注意事项和细节说明。
包对象注意事项和细节说明|学习笔记
|
编译器 Go 开发者
包使用注意事项和细节(1)|学习笔记
快速学习包使用注意事项和细节(1)
包使用注意事项和细节(1)|学习笔记
|
存储 程序员 Go
切片注意事项和细节(2) | 学习笔记
简介:快速学习切片注意事项和细节(2)
139 0
切片注意事项和细节(2) | 学习笔记
|
Go vr&ar 开发者
切片注意事项和细节(3) | 学习笔记
简介:快速学习切片注意事项和细节(3)
切片注意事项和细节(3) | 学习笔记
|
Go 开发者
切片注意事项和细节(1) | 学习笔记
简介:快速学习切片注意事项和细节(1)
124 0
切片注意事项和细节(1) | 学习笔记
|
网络协议 测试技术 Go
协程配合管道的综合案例 | 学习笔记
快速学习协程配合管道的综合案例
协程配合管道的综合案例 | 学习笔记
下一篇
无影云桌面