gRPC 异常处理
最近第一次使用 gRPC 创建一个服务,在服务端我想将一个自定义异常直接抛出去,让客户端能看到。一开始,我这样尝试: // responseObserver.onError(new CustomException("custom exception")); throw new CustomException ( "one error occurs" ) ; 可是得到了很尴尬的结果: io . grpc . StatusRuntimeException : UNKNOWN 客户端看不到我自定义抛出的异常 error message。经过一番研究,找到两种客户端可以获取到服务端抛出来的自定义异常信息。 方式 1: 设置异常 message 到 Status 的 description 服务端实现是这样的: // 自定义异常处理 @Override public void customException ( EchoRequest request , StreamObserver < EchoResponse > responseObserver ) { try { if ( request . getMessage ( ) . equals ( "error" ) ) { throw new CustomException ( "custom exception message" )