go的异常抛出

defer func() { if r := recover(); r != nil { fmt.Println("Recovered:", r) } }()

在任何涉及到数组取值的地方,都应该在开头写一个这个捕获抛出异常的

数组越界问题最容易出异常,没有抛出就会终结整个程序

数组越界异常,简单来说,就是程序尝试访问数组中不存在的元素。这种行为会导致程序运行时错误,甚至崩溃。在Go语言中,数组越界异常通常由以下几种情况引起:

  • 索引计算错误:程序员在计算数组索引时出现逻辑错误。
  • 边界条件遗漏:在循环或条件判断中,未能正确处理数组的边界条件。
  • 外部输入不当:用户输入或外部数据导致索引值超出数组范围。

参考文档

Go语言触发异常的场景有哪些

  1. 数组越界
  2. 空指针访问
  3. 类型断言失败
  4. 除数为零
  5. 并发访问map导致的错误
  6. 堆栈溢出
  7. 其他潜在的触发异常场景
    • 未初始化的变量使用
    • 非法的类型转换
    • 资源泄露或管理不当
    • 死锁