In this chapter, we will add functions to not only make our application easier to use, but also decrease the chance of “runtime” errors. For instance, we will begin using choice components to insure that only valid data is supplied to the Java application. In addition, we will “catch” errors before the user sees them. Once an error is caught, the application will either resolve the error or tell the user (in much clearer/simpler language than the JVM error messages) what the problem is and how to solve it. We will also explain the concept of iteration (looping) and show how programmers incorporate iteration to increase efficiency.