【发布时间】:2014-11-08 21:08:02
【问题描述】:
我有一个问题,如何在 UML 的序列图中绘制 try catch 块? 我可以将 try 作为正常情况,将 catch 作为替代情况吗?
我正在使用 Visio 编写 UML 序列图。
【问题讨论】:
标签: uml sequence-diagram
我有一个问题,如何在 UML 的序列图中绘制 try catch 块? 我可以将 try 作为正常情况,将 catch 作为替代情况吗?
我正在使用 Visio 编写 UML 序列图。
【问题讨论】:
标签: uml sequence-diagram
UML 序列图缺乏可视化异常的能力。不过也有“变通办法”,请参考:
【讨论】:
interrupting edge 表示法与 UML 序列图一起使用,例如在 UML Interaction Overview Diagram 或您自定义的“混合”中根据uml-diagrams.org/uml-25-diagrams.html "..UML 规范不排除混合不同类型的图表.."
在序列图中没有标准的方法来模拟异常处理。这是我的处理方式:
上图是使用 Web Sequence 生成的,这是一个免费(开源)的 chrome 扩展。您可以从这里获得它:https://chrome.google.com/webstore/detail/web-sequence/kcpganeflmhffnlofpdmcjklmdpbbmef 或从官方网站:https://www.zenuml.com。 要测试它,您只需将以下代码粘贴到上述插件的代码编辑器或网站上即可。
JobTask.Run() {
try() {
Action.Execute() {
InternalException.throw()
}
}
InternalException.Catch() {
Logger.Error()
HighLevelException.throw()
}
}
它表明我们有一个 try 块。在这个块中,我们执行 Action.Execute() ,其中可能会引发 InternalException。然后我们捕获它,记录一个错误并重新抛出一个 HighLevelException,这是一种非常典型的异常处理策略。
【讨论】: