Hello M.,
Here are some proposals, with `goto`, as:
Without `useverticalif `:
@startuml
'!pragma useverticalif on
start
if (test1) then (error)
label d0
label d1
label d2
label d3
label d4
label d5
label error
:do some;
:error recovery;
elseif (test2) then (error)
label l2
goto error
elseif (test3) then (error)
label d0
label d1
goto error
elseif (test4) then (error)
label d0
label d1
label d2
goto error
elseif (test5) then (error)
label d0
label d1
label d2
label d3
goto error
elseif (test6) then (error)
label d0
label d1
label d2
label d3
label d4
goto error
elseif (test7) then (error)
label d0
label d1
label d2
label d3
label d4
label d5
goto error
else (no error)
:normal flow;
endif
stop
@enduml
With `useverticalif `:
@startuml
!pragma useverticalif on
start
if (test1) then (error)
label error
elseif (test2) then (error)
goto error
elseif (test3) then (error)
goto error
elseif (test4) then (error)
goto error
elseif (test5) then (error)
goto error
elseif (test6) then (error)
goto error
elseif (test7) then (error)
:do some;
:error recovery;
detach
else (no error)
:normal flow;
endif
stop
@enduml
That is yet not perfect, some overlappings... (to improve by PlantUML team: )
See also doc. and wanted feature about goto here:
If that can help,
Regards,