defer func() { if r := recover(); r != nil { fmt.Println("Recovered:", r) } }()
在任何涉及到数组取值的地方,都应该在开头写一个这个捕获抛出异常的
数组越界问题最容易出异常,没有抛出就会终结整个程序
数组越界异常,简单来说,就是程序尝试访问数组中不存在的元素。这种行为会导致程序运行时错误,甚至崩溃。在Go语言中,数组越界异常通常由以下几种情况引起:
- 索引计算错误:程序员在计算数组索引时出现逻辑错误。
- 边界条件遗漏:在循环或条件判断中,未能正确处理数组的边界条件。
- 外部输入不当:用户输入或外部数据导致索引值超出数组范围。
- 数组越界
- 空指针访问
- 类型断言失败
- 除数为零
- 并发访问map导致的错误
- 堆栈溢出
- 其他潜在的触发异常场景
- 未初始化的变量使用
- 非法的类型转换
- 资源泄露或管理不当
- 死锁