1、越界
常见有数组越界和字符串越界
2、空指针引用
直接引用空指针结构体的字段会引发panic,但调用成员方法里如果没引用结构体的字段不会引发panic
3、断言失败
4、map操作错误
map未初始化,可读不可写。
map的value如果是结构体指针,使用时先判空。
5、除数为0
6、调用未实现的方法
7、通道操作错误
向已经关闭的管道写会panic,读不会panic
多次调用close会导致panic
只有生产者,没有消费者,当管道已满时,所有协程都会被阻塞,从而导致死锁。
8、goroutine竞争资源
死锁
线程不安全的数据结构,多线程操作
9、内存不足
10、 Stack Overflow
递归死循环或者超出栈空间