UML 异常处理符号
UML Exception Handler Notation
UML activity 图中异常处理程序的表示法是什么?难道只是闪电?还是更多?
根据规范 v2.5.1 第 404 页:
An ExceptionHandler is shown by drawing a “lightning bolt” symbol from the boundary of the protectedNode to a small square on the boundary of the ExceptionHandler.
对我来说,这听起来像是一个递归的解释。
根据抽象语法(第 403 页),异常处理程序是其受保护节点的一部分,并与 handlerBody (ExecutableNode)、exceptionInput (ObjectNode) 和 exceptionTypes (Classifier) 相关联。
我的理解是,异常处理程序只是一道闪电。 handlerBody、它的 objectNode 和 protectedNode 是使用它们自己的符号的独立实体。
有人能澄清一下吗?
规范中的措辞有时令人困惑。闪电是一个中断流,处理程序是一个 ExecutableNode
。规范中有很多示例(UML 2.5 的第 403 页)
您需要四件事来显示 AD 中的异常处理:
- 一些
Action
(我省略了控制流程from/to其他操作)
- 一个
InterruptibleActivityRegion
(虚线边界)
- 一个
ExceptionHandler
和一个ObjectNode
接受异常
- 和
InterruptFlow
(由螺栓显示)
你只能让螺栓离开可中断区域。和通常的对象流一样,您可以将守卫附加到该螺栓上。
为了显示异常处理的详细信息,您可以将调用行为放在处理程序中。
要指定异常类型,您可以按照 p.1 的规范中所示进行操作。 UML 2.5 的 403:
你是对的,抽象语法对我来说似乎比描述更清楚。
异常处理程序可能看起来像一个边缘。
它由它的源拥有,也就是异常处理程序的 protectedNode,并引用它的目标,在异常处理程序的情况下也就是 exceptionInput(由 handlerBody 拥有)。
当然,在大多数情况下,protectedNode 和 handlerBody 是两个不同的可执行节点,具有自己的符号(结构化 Activity、动作等)。
最后一点是异常类型分类器,它是对模型上任何分类器的引用。
希望它能澄清事情。
EBR
你是对的 - ExceptionHandler 是一道闪电。
根据下面的抽象语法图,ExceptionHandler 是一个 Element,表示其他四个实例之间的关系:ExecutableNode (protectedNode), ExecutableNode (handlerBody), ObjectNode (exceptionInput) 和 Classifier (exceptionType)
所以文档大部分是准确的(经过我的小修改——我用 handlerBody 替换了第二个 ExceptionHandler):
The notation for ExceptionHandlers is illustrated in Figure 15.62. An ExceptionHandler is shown by drawing a “lightning bolt” symbol from the boundary of the protectedNode to a small square on the boundary of the handlerBody. The name of the exceptionType is placed next to the lightning bolt. The small square is the exceptionInput node.
UML activity 图中异常处理程序的表示法是什么?难道只是闪电?还是更多?
根据规范 v2.5.1 第 404 页:
An ExceptionHandler is shown by drawing a “lightning bolt” symbol from the boundary of the protectedNode to a small square on the boundary of the ExceptionHandler.
对我来说,这听起来像是一个递归的解释。
根据抽象语法(第 403 页),异常处理程序是其受保护节点的一部分,并与 handlerBody (ExecutableNode)、exceptionInput (ObjectNode) 和 exceptionTypes (Classifier) 相关联。
我的理解是,异常处理程序只是一道闪电。 handlerBody、它的 objectNode 和 protectedNode 是使用它们自己的符号的独立实体。
有人能澄清一下吗?
规范中的措辞有时令人困惑。闪电是一个中断流,处理程序是一个 ExecutableNode
。规范中有很多示例(UML 2.5 的第 403 页)
您需要四件事来显示 AD 中的异常处理:
- 一些
Action
(我省略了控制流程from/to其他操作) - 一个
InterruptibleActivityRegion
(虚线边界) - 一个
ExceptionHandler
和一个ObjectNode
接受异常 - 和
InterruptFlow
(由螺栓显示)
你只能让螺栓离开可中断区域。和通常的对象流一样,您可以将守卫附加到该螺栓上。
为了显示异常处理的详细信息,您可以将调用行为放在处理程序中。
要指定异常类型,您可以按照 p.1 的规范中所示进行操作。 UML 2.5 的 403:
你是对的,抽象语法对我来说似乎比描述更清楚。
异常处理程序可能看起来像一个边缘。 它由它的源拥有,也就是异常处理程序的 protectedNode,并引用它的目标,在异常处理程序的情况下也就是 exceptionInput(由 handlerBody 拥有)。
当然,在大多数情况下,protectedNode 和 handlerBody 是两个不同的可执行节点,具有自己的符号(结构化 Activity、动作等)。
最后一点是异常类型分类器,它是对模型上任何分类器的引用。
希望它能澄清事情。 EBR
你是对的 - ExceptionHandler 是一道闪电。
根据下面的抽象语法图,ExceptionHandler 是一个 Element,表示其他四个实例之间的关系:ExecutableNode (protectedNode), ExecutableNode (handlerBody), ObjectNode (exceptionInput) 和 Classifier (exceptionType)
所以文档大部分是准确的(经过我的小修改——我用 handlerBody 替换了第二个 ExceptionHandler):
The notation for ExceptionHandlers is illustrated in Figure 15.62. An ExceptionHandler is shown by drawing a “lightning bolt” symbol from the boundary of the protectedNode to a small square on the boundary of the handlerBody. The name of the exceptionType is placed next to the lightning bolt. The small square is the exceptionInput node.