首先,我不太确定我的情况是否适合使用弹簧状态机。
这是我的理由:
我有一个很大的可变对象和一组逻辑单元,它将以一定的顺序操纵这个可变对象。
对于正常流程:A.exec - > B.exec - > C.exec - >完成
对于异常从A:A - >抛出的错误流程错误 - >完成(B和C被绕过)
对于异常从B抛出的错误流:A - > B - >另一个流程
我猜A,B,C可以建模为状态,而动作可以用来在从A转移到B时执行真正的商业逻辑。
如何从A中捕获可能抛出的异常并将目标更改为另一个状态而不是B?
由于
莱昂
答案 0 :(得分:1)
我使用junction
或choice
并为传出转换定义防护。 gh240中讨论的内容。然后你可以捕捉你的异常,即存储处于扩展状态的东西,然后从你的警卫那里你可以自由地评估不同的条件。
选择几乎是if/elseif/else
结构来定义哪个分支机器将跟随转换。
还有deploy sample使用相同的概念建模。