iterate top-down and ignore exceptions
reordered by exploration order