Many Java programs that you create will receive and process user input. In order to ensure that user input is accurate, you will need to use input validation and exception handling. For example, if you ask for a zip code, you want to ensure the user inputs a five-digit number. In this activity, you are given “buggy” code for a paint program that calculates the number of cans of paint required to paint a wall, given the wall’s height and width. You will need to debug the code and improve it by adding code to validate user input and handle exceptions.
For this assignment, you will complete the paint program by debugging the original code and adding code that validates user input and handles exceptions. Use the Uploading Files to Eclipse and the Downloading Files From Eclipse tutorials to help you with this project.
- Open the Virtual Lab by clicking on the link in the Virtual Lab Access module. Then open your IDE. Upload the Paint1.zip folder and review the code for the Paint1.java file.
- Find and fix the three errors in the given code.
- Use the input values below to test your program. If you found and fixed all errors, your output should exactly match what is below.
TIP: When you run your program in Eclipse, it will prompt you to enter input in the Console window. If you cannot find this window, go to Window, then Show View, then Console.
- Input Validation and Exception Handling
- Review the code, looking for the two code blocks where user input is required.
- Implement a do-while loop in both blocks of code to ensure that input is valid and any exceptions are handled.
TIP: Consider using a try-catch block for exception handling, but it is not required.
- Use the two sample invalid inputs below to test your program. Your program should respond to each by prompting the user to enter valid input. This should continue to loop until valid input is received.
THINK: Why is 0 invalid input for this problem? What is the user being asked to input?
Guidelines for Submission
Attach your completed Paint1.java file to the assignment submission page.
Module Six Assignment Rubric
CriteriaProficient (100%)Needs Improvement (75%)Not Evident (0%)ValueDebuggingDebugs a class so that no errors remain and calculations work correctlyMeets some “Proficient” criteria, but with errors or exclusions such as one or two remaining bugsDoes not attempt criterion30Input Validation and Exception HandlingAdds loops to validate all user input and handle exceptions so that code passes all test casesMeets most “Proficient” criteria, but with errors; areas for improvement may include ability to handle all test casesDoes not attempt criterion70Total:100%