internal static RpcError?TryCreate(Exception e, IRpcSerializer?serializer) { switch (e) { case RpcServiceUnavailableException _: return(new RpcError { ErrorType = WellKnownRpcErrors.ServiceUnavailable, Message = e.Message }); case RpcFaultException faultException: var rpcError = new RpcError { ErrorType = WellKnownRpcErrors.Fault, ErrorCode = faultException.FaultCode, Message = faultException.Message }; if (serializer != null) { rpcError.ErrorDetails = faultException.SerializeDetails(serializer); } return(rpcError); case RpcFailureException failureException: return(new RpcError { ErrorType = WellKnownRpcErrors.Failure, ErrorCode = failureException.Failure.ToString(), Message = failureException.Message }); } return(null); }
internal RpcErrorException(RpcError error) : base(error.Message) { this.Error = error; }