Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Questions for Discussion (Week 13) For Chapter 14 Exception Handling: Try out the Review Questions on pages 592 – 594 on your own. For Chapter 15 Files: Try out the Review Questions 1 – 8 on pages 635 – 636 on your own. (For Chapter 15, we will focus on text files.) Question 1. Consider the following method: public int dummy() throws java.io.IOException { int value = 0; try { value = 1; doIt(); value = 2; } catch (NullPointerException e) { value += 10; } catch (RuntimeException e) { value += 20; } return value; } What value does the method return if doIt() method: a. throws a NullPointerException? b. throws an ArithmeticException? c. throws a java.io.IOException? d. completes successfully? - 1 of 4 - Question 2 [Page 594] Refer to the program below. /*************************************************** * FantasyFootball.java * Dean & Dean * This prints out names of football players. ****************************************************/ import java.util.Scanner; import java.util.ArrayList; public class FantasyFootball { public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); ArrayList<String> players = new ArrayList<String>(); String indexStr; int index = 0; players.add("Peyton Manning"); players.add("Ladanian Tomlinson"); players.add("Reggie Bush"); System.out.print("Enter a number between 1 and 3: "); indexStr = stdIn.nextLine(); try { index = Integer.parseInt(indexStr); System.out.println("Entered index OK."); } catch (NumberFormatException e) { System.out.println("Entered index wasn't an integer"); } try { System.out.println(players.get(index - 1)); } catch (IndexOutOfBoundsException e) { System.out.println( "Can't access players[" + (index - 1) + "]"); } System.out.println("done"); } // end main } // end class FantasyFootball a. What is the output if the user enters 1 in response to the prompt? b. What is the output if the user enters “one” in response to the prompt? - 2 of 4 - Question 3 [Page 595] Add a try-catch structure to the following program to make it compile and execute correctly, even when the divisor is zero. Note that division by zero throws an ArithmaticException. import java.util.Scanner; public class Division { public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); int n, d, q; System.out.print("Enter numerator: "); n = stdIn.nextInt(); System.out.print("Enter divisor: "); d = stdIn.nextInt(); q = n / d; System.out.println(q); } // end main } // end Division class To help you out, we’ve provided the catch block, below: catch (ArithmeticException e) { System.out.println("Error, but keep going anyway."); } Question 4 Refer to the program on the next page. a. The following are some possible contents in the text file data_file.in. Indicate which of them can be used by the given program without causing any error. If an error occurs, write down the name of the exception. (i) 2 3 1.2 2.3 3.4 5.5 6.6 7.7 (ii) 2 3 1.2 2.3 3.4 5.5 6.6 7.7 (iv) 2 3 1.2 2.3 3.4 5.5 6.6 7.7 (v) 2 3 1.2 2.3 3.4 5.5 6.6 7.7 8.8 9.9 - 3 of 4 - (vi) 2 3 1.2 2.3 3.4 5.5 6.6 (iii) 2 3 1.2 2.3 3.4 5.5 6.6 7.7 b. Instead of printing the matrix on the screen, change the printMatrix() method so that it prints the matrix into a text file called matrix.out. import java.util.*; import java.io.*; public class Week13Q4 { public static void main(String[] args) throws IOException { Scanner fileIn = new Scanner(new FileReader("data_file.in")); int numRows = fileIn.nextInt(); // no. of rows of matrix int numCols = fileIn.nextInt(); // no. of columns of matrix double[][] matrix = new double[numRows][numCols]; for (int r = 0; r < numRows; r++) { for (int c = 0; c < numCols; c++) { matrix[r][c] = fileIn.nextDouble(); } } fileIn.close(); printMatrix(matrix); } // main() public static void printMatrix(double[][] arr) { for (int r = 0; r < arr.length; r++) { for (int c = 0; c < arr[0].length; c++) { System.out.printf("%8.2f", arr[r][c]); } System.out.println(); } } // printMatrix() } - 4 of 4 -