异常
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
….
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.