If my program throws an error, I can't start it again!

Event-driven Programming, Menus, and Throwing Errors Next

Q: If my program stops execution by throwing an error, I cannot execute it again without retransmitting it from the computer or another calculator. Namely, when I try to execute it again, the calculator reports "Invalid program reference". Why, and what I can do to prevent such behaviour?
A: See Returning Errors.