惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
WordPress大学
WordPress大学
The Cloudflare Blog
云风的 BLOG
云风的 BLOG
博客园 - Franky
D
Docker
小众软件
小众软件
阮一峰的网络日志
阮一峰的网络日志
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Engineering at Meta
Engineering at Meta
MongoDB | Blog
MongoDB | Blog
U
Unit 42
M
MIT News - Artificial intelligence
B
Blog
GbyAI
GbyAI
C
Check Point Blog
P
Proofpoint News Feed
博客园 - 司徒正美
Hugging Face - Blog
Hugging Face - Blog
雷峰网
雷峰网
IT之家
IT之家
Google DeepMind News
Google DeepMind News
V
V2EX
Stack Overflow Blog
Stack Overflow Blog

Coding

这么多的 coding Agent 大家体验下来有哪些比较好的么? - V2EX 电影《她》的升级版来了,结婚率生育率会受到暴击吗? - V2EX 请教一下各位佬 GPT 一直 401 是什么情况? 天翼云 glm5.1 codingplan 官方玩不起,强制终止用户的包月续订 字节的 CodingPlan 实锤虚假宣传 现在有什么优雅的使用 ai 工具编程的方法? MiniMax-M2 截到 11.07 限时免费 VibeCoding 导致损失 1100 刀 科班大学计算机专业主要课程有哪些呢 你们公司用上 ChatGPT 了吗?有哪些使用场景 Cloud Studio 内核升级之专注体验 行云流水| CI 3.0 云原生构建全新上线 ​Cloud Studio 云端开发保障企业源代码安全 更高效便捷的开发体验——Cloud Studio 编辑器命令行工具 Cloud Studio 内核升级之持续优化 Cloud Studio 有“新”分享 怎么设计面试题,能考查到实战能力? 有奖征文丨 [玩转 Cloud Studio] 第二季来啦! Cloud Studio 一个好用的在线编程工具 线上直播 | 未来金融研究所——以应用为中心,重塑金融研发效率 新一代 CI 即将到来! 重磅发布! Orbit 云原生应用全生命周期管理工具上线啦! 腾讯云, DevOps 领导者! 各位是如何批量管理项目中的 shell 脚本的? CODING DevSecOps 助力金融企业跑出数字加速度 CODING 正式入驻腾讯会议应用市场! CODING DevOps 助力中化信息打造新一代研效平台,驱动“线上中化”新未来 叮! Techo Day 腾讯技术开放日如约而至! 程序员在公司该怎么保护自己的个人劳动成果? Next.js 在 Serverless 中从踩坑到破茧重生
rpc 服务中,“业务错误”的返回应该如何设计?
justdoit123 · 2024-07-02 · via Coding

是返回类似下面的业务错误码结构,

{
    "rc": 10001,
    "msg": "部分商品没有库存",
    "data": {
        "out_of_stock_ids": [
            1,
            2,
            3
        ]
    }
}

还是抛出下面这样的自定义异常?

class BaseBusinessError(Exception):
    rc = 500
    msg = 'Unknown error'
    data = None

    def __repr__(self):
        return f'<Error {self.rc}: {self.msg}. data: {self.data}>'

    def __str__(self):
        return self.__repr__()


class ShopOutOfStockError(BaseBusinessError):
    rc = 10001
    msg = "部分商品没有库存"
    data = None

    def __init__(self, product_ids: list):
        self.data = product_ids

如果采用异常方案,调用方没有自定义异常类的定义怎么办?如何反序列化?是不是要共享异常的定义代码给所有调用方?要是调用方是其它语言呢?

这篇博客 下的这句:

查询方法不建议抛出 checked 异常,否则调用方在查询时将过多的 try...catch ,并且不能进行有效处理。

中的 checked 异常是什么意思?是否可以理解为查询方法不抛异常。比如,查询某个数据没有权限,直接返回空,而不是抛一个没有权限的异常。