golang 程序的异常退出
同事反馈了一个问题,一个微服务异常退出。查了许久没有发现一个是一个协程异常导致的整个进程退出了。程序的异常情况其实基本上是可控的,找到异常原因,修复问题上线是可以的。但是这里体现了两个知识点:1、golang的一个协程异常,如果没有捕获,回导致整个进程退出。这里就不举例子说明了,自己可以写个很简单的demo,通过go func() {}里面使用panic产生恐慌试验下。2、关于defer、panic、recover的使用理解golang不支持java语言中的try...catch...finally这种异常,因为...此处忽略了一千字????defer的原意是推迟、延期。它的思想类似与C++的析构函数,不过go语言中的析构的不是对象,而是函数,defer就是用来添加函数结束时执行的语句。注意...阅读全文