当前位置: 首页 > news >正文

golang常见导致panic的场景

1、越界

常见有数组越界和字符串越界
在这里插入图片描述
在这里插入图片描述

2、空指针引用

直接引用空指针结构体的字段会引发panic,但调用成员方法里如果没引用结构体的字段不会引发panic
在这里插入图片描述

3、断言失败

在这里插入图片描述

4、map操作错误

map未初始化,可读不可写。

map的value如果是结构体指针,使用时先判空。
在这里插入图片描述

5、除数为0

在这里插入图片描述

6、调用未实现的方法

7、通道操作错误

在这里插入图片描述
在这里插入图片描述

向已经关闭的管道写会panic,读不会panic

在这里插入图片描述

多次调用close会导致panic

在这里插入图片描述

只有生产者,没有消费者,当管道已满时,所有协程都会被阻塞,从而导致死锁。

8、goroutine竞争资源

在这里插入图片描述

死锁

在这里插入图片描述

线程不安全的数据结构,多线程操作

9、内存不足

10、 Stack Overflow

递归死循环或者超出栈空间
在这里插入图片描述

http://www.lryc.cn/news/89178.html

相关文章:

  • Python 修改文件权限+只读后几行 can‘t do nonzero end-relative seeks
  • 每日学术速递5.25
  • GAMES202作业1
  • Android 12.0状态栏居中显示时间和修改时间显示样式
  • 湍流的数值模拟方法概述
  • openFast中的陆上风电机组5MW_Land_DLL_WTurb参数详解
  • “卷”还是“躺平”?职场人如何在工作中找到价值感?
  • 《Opencv3编程入门》学习笔记—第二章
  • ABP VNext种子数据按顺序插入
  • Verilog | FIFO简单实现
  • 设计模式应用场景
  • 还在老一套?STM32使用新KEIL5的IDE,全新开发模式RTE介绍及使用
  • Java时间类(十一) -- Date类工具类 -- Java获取当天、本周、本月、本年 开始及结束时间
  • Alma Linux 9.2、Rocky Linux 9.2现在是RHEL 9.2的替代品
  • 推荐5款提高生活和工作效率的好帮手
  • 美团小组长薪资被应届生员工倒挂7K,不把老员工当人?
  • 【Java多线程案例】使用阻塞队列实现生产者消费者模型
  • Spark 3:Spark Core RDD持久化
  • 字节跳动五面都过了,结果被刷了,问了hr原因竟说是...
  • Python日期带时区转换工具类总结
  • 视频会议产品对比分析
  • 每日一练 | 华为认证真题练习Day47
  • ChatIE(LLM大模型用于信息抽取)
  • 提升企业管理效率的利器——ADManager Plus
  • 《入侵的艺术》读书心得:第六章:渗透测试中的智慧与愚昧
  • SAP-MM-采购申请-价值特性
  • 设计模式 - 代理模式
  • IOC初始化 IOC启动阶段 (Spring容器的启动流程)
  • Java后端入职第四天,就被要求代码回退(Git回退实战)
  • 【swing】SplitPanel