The way the calling chain works is that when an error is encountered, it passes the error up to the procedure that called it. In other words, if Procedure 1 calls Procedure 2 and Procedure 2 encounters an error, it will pass that error up to Procedure 1. If you think of Procedure 2 as a child of Procedure 1, it’s as if the child is asking its parent for help. As it’s passed up the calling chain, the error handler in the calling procedure will deal with the error.