StatementMultipleOutEdges
DRAFT

Misconception:

A normal (statement) control-flow graph node (e.g., some node for a statement like a = a + 2) can have more than one outgoing arrows.

Incorrect

A non-condition node in a control-flow graph can have multiple outgoing edges

Correct

Correction
Here is what's right.

Unlike condition nodes (shown as diamonds), statement nodes (shown as rectangles) have exactly one outgoing edge. That edge points to the next node to execute. There is no choice: execution must continue at exactly that next node.

Note: If we include exceptional control flow (due to the implicit throwing of exceptions, such as the possible throwing of a NullPointerException in a statement like o.x = 2), then nodes can have multiple outgoing edges: one normal edge, and zero or more exceptional edges (exceptional edges show what happens next when an exception is thrown: they point to a catch or finally block, or to the exit node of the CFG).

Language

Java
Notional Machine
ControlFlowAsGraph

Concepts

Expressible In

Stay up-to-date

Follow us on  twitter to hear about new misconceptions.