The problem with the first code is that it requires an error before it returns to the start. With the second code I can set it to return from any point.