That is a very difficult one to explain to someone with no coding experience.
I disagree. The try-catch block just performs an action while listening for special return values indicative of failure. Take establishing a connection, which may succeed or fail. If the failure code (or exception) is found, the program reacts differently than if it is not. I think most people would catch on quickly, especially if with some pseudocode to point to.
How can you ask a computer to "try" something, really?
I think "try" is a lot like "do," with uncertainty. Take a look at the definitions of "try". Def. 1 seems circular, but Defs. 2 - 4 and 7 seem to apply pretty well to the program. Of course, if we use Def. 8 instead, then few of us ever "try."
Ahh, semantics (being the study of meaning, I actually think semantics is pretty important).