介绍我在之前的文章《go里面的异常处理》简单地说了下go的异常处理机制, 在web中, 一般可以通过框架层面提供的过滤器/拦截器统一地处理这种异常, 避免main函数被带崩.grpc-go的异常处理grpc-go...的异常处理比较简单, 需要注意的点其实就是需要针对Unary和Stream两种模式都添加拦截器下面实现一个简单的异常处理拦截器并将其应用到Server中grpc_recovery目录interceptors.gopackage...("/Users/guirong/go/src/grpc-demo/helloworld/server/server.key"))if err !...= nil {log.Fatalf("failed to serve: %v", err)}}⚠️需要注意的是, 异常处理的拦截器应该在整个chain的顶端, 这样才能避免异常传递到主函数导致服务崩溃....输出效果我们需要手动在服务里添加一个painc, 然后对比有异常处理和没有的区别.图片无异常处理可以看到, 一旦触发异常, 那么服务器main函数也会被拉垮.图片有异常处理有异常处理, 只是输出了一个painc