架构级异常处理系统:ALEx与FaTC2框架解析
在软件开发中,构建容错的组件化应用是一个重要的目标。为了实现这一目标,我们需要有效的异常处理机制。本文将介绍一种架构级异常处理系统ALEx以及实现该系统的面向对象框架FaTC2,同时通过一个应用示例展示其具体应用。
1. 控制流的延续
ALEx采用终止模型,即当一个组件在处理服务请求时抛出异常,且该异常被另一个组件成功处理后,执行将由后者恢复。以下是一个包含客户端组件和服务器iC2C的C2架构示例,展示了异常成功处理后控制流的延续:
1. 客户端组件向服务器组件请求服务;
2. 服务器正常活动尝试处理服务请求;
3. 服务器正常活动抛出异常,该异常被服务器异常活动接收;
4. 服务器异常活动尝试处理异常;
5. 服务器异常活动处理异常失败并抛出失败异常;
6. 客户端组件接收异常并将其路由到客户端异常活动;
7. 客户端异常活动处理异常,并向客户端正常活动发送恢复正常请求,指示应恢复处理;
8. 客户端正常活动恢复处理。
下面是这个过程的mermaid流程图:
graph LR
A[客户端组件] -->|请求服务| B[服务器组件]
B -->|尝试处理请求| C[服务器正常活动]
C -->|抛出异常| D[服务器异常活动]
D -->|尝试处理异常| E{是否处理成功}
E -- 否 -->|抛出失败异常| F[客户端组件]
F -->|路由异常| G[客户端异常活动]
G