Go语言的异常处理
Go语言的异常处理和Java、PHP语言的try…catch不一样!Go是使用内置的error来处理错误,用panic和recover来处理异常;
panic抛出异常、这个异常直接回导致程序崩溃暂停程序的执行,官方建议并发程序中慎用!
defer捕获异常、defer延迟执行、实现类似栈的”先进后出”的数据结构、一般defer后面直接和匿名函数+recover来捕获和处理异常;
recover恢复异常处理!recover必须和defer直接调用才有效,否则永远返回nil(编程陷阱)!
1 | func worker() { |