panic

运行时错误会引起panci,如数组访问越界、空指针引用。
当panic异常发生时,程序会中断运行,并立即执行在该goroutine(可以先理解成线程)中被延迟的函数(defer 机制)

recover

recover 是一个 Go 语言的内建函数,可以让进入宕机流程中的 goroutine 恢复过来。

error

go中的错误处理,是通过返回值的形式来出来,要么你忽略,要么你处理(处理也可以是继续返回给调用者),对于golang这种设计方式,我们会在代码中写大量的if判断,以便做出决定。

对于err如果是nil就代表没有错误,如果不是nil就代表程序出问题了,需要对错误进行处理了

fatal error

map并发读写场景会引起fatal error,这个错误将直接throw出去,即无法通过recover恢复。
不能recover的函数:

  • panic on system stack
  • panic during malloc
    ….