Exercise 5.30 - implementing error handling...