RPC 接口返回值一般有两种形式,一种是用 Result 对象包装,可能对不同语言调用来说会更好,也是阿里规范建议的。另一类是不包装,错误码以业务异常的形式抛出。个人倾向于抛异常的形式,因为 Result 解析对于调用者会比较麻烦,例如需要先判断 Result 的 code 是否是成功状态。而抛业务异常,就比较方便,调用者调用接口时 catch 住业务异常,此外考虑性能问题,可以使业务异常只包含当前异常栈。大家更倾向于哪一种呢,或者是还有其他形式?
1
hyperdak288 Jun 6, 2019 http://blog.sina.com.cn/s/blog_e59371cc0102v81w.html
参考这个文章,原文没找到,随手找了一个转载的文章。 因为 RPC 通信的特性,必然会遇到服务端超时 /不可用的情况,所以最好的方法是异常+状态码组合使用。 |