【发布时间】:2022-12-11 10:56:51
【问题描述】:
问题陈述:我有一个 RPC 客户端 lib 1,它被许多服务使用,所有代码都在一个单一的 repo 中。此 RPC 客户端库 1 抛出一组运行时异常 (S1)。 现在有另一个 RPC 客户端 lib 2,我尝试将所有服务从使用 lib 1 迁移到 lib 2。但是,RPC 客户端 lib 2 抛出一组不同的运行时异常 (S2)。 如果 RPC 客户端异常语义从 S1 更改为 S2,我正在尝试获取将受到影响的服务列表。
方法一:通读当前使用 RPC 客户端库 1 的所有服务的代码。显然,这种方法不可扩展,因为有许多服务和异常处理逻辑可能很复杂且不直接。
方法二:静态分析。但是,我不确定是否有任何静态分析可以检测到 RPC lib 抛出的异常在调用堆栈的上方许多级别被捕获的情况。
方法三:探索是否有一种方法可以注册异常的回调,并期望在捕获到异常时调用回调。理想情况下,当调用回调时,它会提供有关异常捕获位置的信息。
【问题讨论】:
标签: java scala exception error-handling analysis