1、越界

常见有数组越界和字符串越界

2、空指针引用

直接引用空指针结构体的字段会引发panic,但调用成员方法里如果没引用结构体的字段不会引发panic

3、断言失败

4、map操作错误

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

map的value如果是结构体指针,使用时先判空。

5、除数为0

6、调用未实现的方法

7、通道操作错误


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

多次调用close会导致panic

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

8、goroutine竞争资源

死锁

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

9、内存不足

10、 Stack Overflow

递归死循环或者超出栈空间