RpcException をスローした場合
public override TaskSearch(Request request, ServerCallContext context) { Metadata trailers = new Metadata(); trailers.Add("ErrorCode", "123"); throw new RpcException( new Status(StatusCode.Internal, "実行できません。") , trailers ); }
クライアント側でも RpcException がキャッチされます。Status と Trailers にサービス側で設定した内容が設定されています。
RpcException ではない例外をスローした場合
public override TaskSearch(Request request, ServerCallContext context) { var ex = new InvalidOperationException( "実行できません。"); ex.Data.Add("ErrorCode", "123"); throw ex; }
クライアント側では RpcException がキャッチされます。但し、Status は Unknown になり、Trailers にもサービス側で設定した内容は設定されません。Data にも設定されません。
0 件のコメント:
コメントを投稿