An IllegalMoveException can be thrown from a move method.
The reason could be an insufficient length of the track which is shorter
than the breaking distance or a maximum speed limit which should be exceeded
to reach the destination in time or other reasons why a moving call can't
be performed.