I tried using Activity diagrams, which look like the right tool for the task, but I did not find any (generic) way to produce a cyclic graph.
I am aware of "while" and "repeat" loop, but they are very rigid.
A State Diagram allows to create loops (but it is not very nice):
[*] --> select
select: chose from list
select --> start
start: launch program
start --> exception:exception raised
exception: remove current from list
exception --> select
start --> [*]: desired results
Activity Diagram is much nicer (for the task):
:chose from list;
repeat while (exception) is (raised)
-> (desired results);
... but I found no way to put a "remove current from list" box on the upward arrow.
What am I missing?