1、越界
常见有数组越界和字符串越界
2、空指针引用
直接引用空指针结构体的字段会引发panic,但调用成员方法里如果没引用结构体的字段不会引发panic
3、断言失败
4、map操作错误
map未初始化,可读不可写。
map的value如果是结构体指针,使用时先判空。
5、除数为0
6、调用未实现的方法
7、通道操作错误
向已经关闭的管道写会panic,读不会panic
多次调用close会导致panic
只有生产者,没有消费者,当管道已满时,所有协程都会被阻塞,从而导致死锁。
8、goroutine竞争资源
死锁
线程不安全的数据结构,多线程操作文章来源:https://www.toymoban.com/news/detail-460499.html
9、内存不足
10、 Stack Overflow
递归死循环或者超出栈空间
文章来源地址https://www.toymoban.com/news/detail-460499.html
到了这里,关于golang常见导致panic的场景的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!