管道的注意事项和细节(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,为此引进代码错误机制,进行捕获。

相关文章
|
3月前
|
缓存 Ubuntu 网络协议
Linux系统编程之文件I/O函数的使用:介绍文件I/O函数的基本概念、用法和实现方式
Linux系统编程之文件I/O函数的使用:介绍文件I/O函数的基本概念、用法和实现方式
72 1
|
3月前
|
JavaScript 前端开发 Java
流的概念,怎么处理
流的概念,怎么处理
|
3月前
|
监控 安全
管道的三种使用方案中,唯一正确而安全的使用方法
管道的三种使用方案中,唯一正确而安全的使用方法
10 0
|
3月前
|
算法 程序员 编译器
【C++ 基础知识 】C++流操纵符全解析:从基础到高级应用
【C++ 基础知识 】C++流操纵符全解析:从基础到高级应用
103 0
|
3月前
|
存储 数据处理 API
【C# 控制台】主要讲述以下C#的部分语法,部分基础,做到了解作用
【C# 控制台】主要讲述以下C#的部分语法,部分基础,做到了解作用
|
前端开发
前端学习笔记202305学习笔记第二十五天-读写流组合使用
前端学习笔记202305学习笔记第二十五天-读写流组合使用
25 0
|
编译器 Scala 开发者
函数使用注意事项和细节2|学习笔记
快速学习函数使用注意事项和细节2。
59 0
|
网络协议 程序员 测试技术
管道的注意事项和细节(2)|学习笔记
快速学习管道的注意事项和细节(2),使用 select 可以解决从管道取数据的阻塞问题【案例演示】 我们在管道读取数据的时候要 close 管道,如果没有关闭,这个时候他会阻塞,而且会发生死锁,但有些情况如想在不想关闭的情况下也不被阻塞的话,我们就要使用 select
94 0
管道的注意事项和细节(2)|学习笔记
|
Scala 开发者
包对象注意事项和细节说明|学习笔记
快速学习包对象注意事项和细节说明。
61 0
包对象注意事项和细节说明|学习笔记
|
编译器 Go 开发者
包使用注意事项和细节(1)|学习笔记
快速学习包使用注意事项和细节(1)
109 0
包使用注意事项和细节(1)|学习笔记