Java題庫——Chapter12 異常處理和文本IO

異常處理

1)What is displayed on the console when running the following program?java

class Test {
  public static void main (String[ ] args) {
    try {
      System.out.println("Welcome to Java");
    }
    finally {
      System.out.println("The finally clause is executed");
    }
  }
}

A)Welcome to Java followed by The finally clause is executed in the next line
B)Welcome to Java
C)The finally clause is executed
D)None of the above 程序員

不管異常是否發生,finally子句總會被執行編程


2)The following code causes Java to throw ________.
int number = Integer.MAX_VALUE + 1; 2) _______
A)Exception B)Error C)Throwable D)RuntimeException E)no exceptions 數組


3)What is displayed on the console when running the following program?app

class Test {
  public static void main (String[ ] args) {
    try {
      System.out.println("Welcome to Java");
      return;
    }
    finally {
      System.out.println("The finally clause is executed");
    }
  }
}

A)The finally clause is executed
B)Welcome to Java followed by The finally clause is executed in the next line
C)Welcome to Java
D)None of the above ide

在任何狀況下finally塊中的代碼都會執行,即便finally子句中有一個return語句,finally塊仍是會被執行。性能


4)Which of the following is not an advantage of Java exception handling? 4) _______
A)Exception handling simplifies programming because the error-reporting and error-handling code can be placed at the catch block.
B)Java separates exception handling from normal processing tasks.
C)Exception handling makes it possible for the caller's caller to handle the exception.
D)Exception handling improves performance. this

A,B,C都是異常處理的優勢,但異常處理不能提高程序的性能spa

處理簡化了編程,由於錯誤報告和錯誤處理代碼能夠放在catch塊中。
Java將異常處理與普通的處理任務分開。
異常處理使調用方的調用方可以處理異常。

code

5)An instance of ________ describes programming errors, such as bad casting, accessing an out-of-bounds array, and numeric errors.. 5) _______
A)Error B)NumberFormatException C)Throwable D)RuntimeException E)Exception

Exception描述由你的程序和外部環境所引發的錯誤,這些錯誤能被程序捕獲和處理。


6)Analyze the following code:

class Test {
  public static void main(String[ ] args)
    throws MyException {
    System.out.println("Welcome to Java");   
  }
}
class MyException extends Error {
}

A)You should not declare a class that extends Error, because Error raises a fatal error that terminates the program.
B)The program has a compilation error.
C)You cannot declare an exception in the main method.
D)You declared an exception in the main method, but you did not throw it.

Error類不能被繼承,Error描述的是內部系統錯誤,會引起致命錯誤,從而終止程序。


7)An instance of ________ are unchecked exceptions. (Choose all that apply.) 7) _______
A)NumberFormatException B)Throwable C)Error D)RuntimeException E)Exception

RuntimeException、Error以及它們的子類都稱爲unchecked exceptions 未經檢查的異常


8)A method must declare to throw ________. 8) _______
A)unchecked exceptions B) Error C)RuntimeException D) checked exceptions

checked exceptions檢查性異常,編譯器會強制程序員檢查並經過try-catch塊來處理它們,或者在方法頭進行聲明


9)What is displayed on the console when running the following program?

class Test {
  public static void main(String[ ] args) {
    try {
      System.out.println("Welcome to Java");
      int i = 0;
      int y = 2/i;
      System.out.println("Welcome to Java");
    }
    finally {
      System.out.println("End of the block");
    }
   
    System.out.println("End of the block");
  }
}

A)The program displays Welcome to Java and End of the block, and then terminates because of an unhandled exception.
B)The program displays Welcome to Java two times followed by End of the block two times.
C)The program displays Welcome to Java two times followed by End of the block.
D)The program displays Welcome to Java three times followed by End of the block.

存在ArithmeticException算數異常沒有處理unhandled exception

 

10)What exception type does the following program throw?

public class Test {
  public static void main(String[ ] args) {
    String s = "abc";
    System.out.println(s.charAt(3));
  }
}

A)No exception
B)ArithmeticException
C)StringIndexOutOfBoundsException
D)ArrayIndexOutOfBoundsException
E)ClassCastException


11)An instance of ________ describes system errors. If this type of error occurs, there is little you can do beyond notifying the user and trying to terminate the program gracefully. 11) ______
A)Throwable B)Error C)RuntimeException D)Exception E)NumberFormatException

Error描述的是內部系統錯誤,會引起致命錯誤,從而終止程序。


12)What is displayed on the console when running the following program?

class Test {
  public static void main(String[ ] args) {
    try {
      System.out.println("Welcome to Java");
      int i = 0;
      int y = 2/i;
      System.out.println("Welcome to HTML");
    }
    finally {
      System.out.println("The finally clause is executed");
    }
  }
}

A)Welcome to Java followed by The finally clause is executed in the next line.
B)The program displays three lines: Welcome to Java, Welcome to HTML, The finally clause is executed.
C)Welcome to Java. D)None of the above.


13)What exception type does the following program throw?

public class Test {
  public static void main(String[ ] args) {
    Object o = new Object();
    String d = (String)o;
  }
}

A)ArithmeticException
B)ArrayIndexOutOfBoundsException
C)ClassCastException
D)No exception
E)StringIndexOutOfBoundsException

父類對象o不是子類對象d的一個實例,不能進行轉換,不然會出現ClassCastException


14)What exception type does the following program throw?

public class Test {
  public static void main(String[ ] args) {
    Object o = null;
    System.out.println(o.toString());
  }
}

A)ArrayIndexOutOfBoundsException
B)ClassCastException
C)NullPointerException
D)ArithmeticException
E)StringIndexOutOfBoundsException

toStrinfg()返回一個描述該對象的字符串,而這裏Object對象沒有建立,會形成NullPointerException
15)What is wrong in the following program?

class Test {
  public static void main (String[ ] args) {  
    try {
      System.out.println("Welcome to Java");
     }
  }
}

A)You cannot have a try block without a catch block.
B)You cannot have a try block without a catch block or a finally block.
C)Nothing is wrong.
D)A method call that does not declare exceptions cannot be placed inside a try block.

try以後必需要有catch或者finally

 

16)An instance of ________ describes the errors caused by your program and external circumstances. These errors can be caught and handled by your program. 16) ______
A)Throwable B)RuntimeException C)Error D)Exception E)NumberFormatException

Exception描述由你的程序和外部環境所引發的錯誤,這些錯誤能被程序捕獲和處理。

 

17)Analyze the following code:

class Test {
  public static void main(String[ ] args) {
    try {
      String s = "5.6";
      Integer.parseInt(s); // Cause a NumberFormatException
      int i = 0;
      int y = 2 / i;
    }
    catch (Exception ex) {
      System.out.println("NumberFormatException");
    }
    catch (RuntimeException ex) {
      System.out.println("RuntimeException");             
    }
  }
}

A)The program displays NumberFormatException.
B)The program displays RuntimeException.
C)The program has a compilation error.
D)The program displays NumberFormatException followed by RuntimeException.

注意:本題中的try語塊中不僅有一個NumberFormatException,還有一個ArithmeticException算數異常(2/0),但只能拋出一個異常,因此會形成編譯錯誤。

同時會發現NumberFormatException是RuntimeException的子類,而RuntimeException又是Exception的子類,因此會讓程序很難去選擇

Unreachable catch block for RuntimeException. It is already handled by the catch block for Exception

 

18)What exception type does the following program throw?

public class Test {
  public static void main(String[ ] args) {
    System.out.println(1 / 0);
  }
}

A)StringIndexOutOfBoundsException
B)ArrayIndexOutOfBoundsException
C)ArithmeticException
D)No exception
E)ClassCastException


19)What is displayed on the console when running the following program?

class Test {
  public static void main(String[ ] args) {
    try {
      method();
      System.out.println("After the method call");   
    }
    catch (NumberFormatException ex) {
      System.out.println("NumberFormatException");  
    }   
    catch (RuntimeException ex) {
      System.out.println("RuntimeException");
    }   
  }
  static void method() {
    String s = "5.6";
    Integer.parseInt(s); // Cause a NumberFormatException
    int i = 0;
    int y = 2 / i;
    System.out.println("Welcome to Java");   
  }
}

A)The program displays NumberFormatException followed by RuntimeException.
B)The program displays RuntimeException.
C)The program has a compilation error.
D)The program displays NumberFormatException followed by After the method call.
E)The program displays NumberFormatException.

拋出算數異常2/0後沒有能夠捕獲的catch,形成程序中斷


20)What is displayed on the console when running the following program?

class Test {
  public static void main(String[ ] args) {
    try {
      System.out.println("Welcome to Java");
      int i = 0;
      double y = 2.0 / i;
      System.out.println("Welcome to HTML");
    }
    finally {
      System.out.println("The finally clause is executed");
    }
  }
}

A)Welcome to Java.
B)The program displays three lines: Welcome to Java, Welcome to HTML, The finally clause is executed.
C)Welcome to Java followed by The finally clause is executed in the next line.
D)None of the above.

注意上面是浮點數


21)What exception type does the following program throw?

public class Test {
  public static void main(String[ ] args) {
    int[ ] list = new int[5];
    System.out.println(list[5]);
  }
}

A)ClassCastException
B)ArithmeticException
C)No exception
D)ArrayIndexOutOfBoundsException
E)StringIndexOutOfBoundsException

數組越界


22)Analyze the following code:

class Test {
  public static void main(String[ ] args) {
    try {
      int zero = 0;
      int y = 2/zero;
      try {
        String s = "5.6";
        Integer.parseInt(s); // Cause a NumberFormatException
      }
      catch(Exception e) {
      }         
    }
    catch(RuntimeException e) {
      System.out.println(e);
    }
  }
}


A)The program has a compilation error because Exception appears before RuntimeException.
B)A try-catch block cannot be embedded inside another try-catch block.
C)A good programming practice is to avoid nesting try-catch blocks, because nesting makes programs difficult to read. You can rewrite the program using only one try-catch block.
D)None of the above.

一個好的程序是避免嵌套try-catch塊,由於嵌套會使程序難於閱讀。能夠僅使用一個try-catch塊重寫程序。


23)Analyze the following program.

class Test {
  public static void main(String[ ] args) {
    try {
      String s = "5.6";
      Integer.parseInt(s); // Cause a NumberFormatException
      int i = 0;
      int y = 2 / i;
      System.out.println("Welcome to Java");      
    }   
    catch (Exception ex) {
      System.out.println(ex);   
    }   
  }
}

A)The program has a compilation error.
B)An exception is raised due to 2 / i;
C)The program compiles and runs without exceptions.
D)An exception is raised due to Integer.parseInt(s);


24)What is displayed on the console when running the following program?

class Test {
  public static void main(String[ ] args) {
    try {
      method();
      System.out.println("After the method call");   
    }   
    catch (RuntimeException ex) {
      System.out.println("RuntimeException");   
    }   
    catch (Exception ex) {
      System.out.println("Exception");   
    }   
  }
  static void method() throws Exception {
    try {
      String s = "5.6";
      Integer.parseInt(s); // Cause a NumberFormatException
      int i = 0;
      int y = 2 / i;
      System.out.println("Welcome to Java");   
    }
    catch (RuntimeException ex) {
      System.out.println("RuntimeException");   
    }   
    catch (Exception ex) {
      System.out.println("Exception");   
    }
  }
}


A)The program displays Exception followed by RuntimeException.
B)The program displays RuntimeException twice.
C)The program has a compilation error.
D)The program displays RuntimeException followed by After the method call.
E)The program displays Exception twice.


25)What is displayed on the console when running the following program?

class Test {
  public static void main(String[ ] args) {
    try {
      System.out.println("Welcome to Java");
      int i = 0;
      int y = 2/i;
      System.out.println("Welcome to Java");
    }
    catch (RuntimeException ex) {
      System.out.println("Welcome to Java");
    }
    finally {
      System.out.println("End of the block");
    }
  }
}


A)The program displays Welcome to Java two times.
B)The program displays Welcome to Java two times followed by End of the block.
C)The program displays Welcome to Java three times.
D)The program displays Welcome to Java three times followed by End of the block.

ArithmeticException是RuntimeException的子類,子類的實例老是父類的實例


26)What is displayed on the console when running the following program?

class Test {
  public static void main(String[ ] args) {
    try {
      System.out.println("Welcome to Java");
      int i = 0;
      int y = 2/i;
      System.out.println("Welcome to Java");
    }
    catch (RuntimeException ex) {
      System.out.println("Welcome to Java");
    }
    finally {
      System.out.println("End of the block");
    }
    System.out.println("End of the block");
  }
}


A)The program displays Welcome to Java two times followed by End of the block.
B)The program displays Welcome to Java two times followed by End of the block two times.
C)The program displays Welcome to Java three times followed by End of the block.
D)You cannot catch RuntimeException errors.

27)What is displayed on the console when running the following program?

class Test {
  public static void main(String[ ] args) {
    try {
      method();
      System.out.println("After the method call");   
    }   
    catch (RuntimeException ex) {
      System.out.println("RuntimeException");   
    }   
    catch (Exception ex) {
      System.out.println("Exception");   
    }   
  }
  static void method() throws Exception {
    try {
      String s = "5.6";
      Integer.parseInt(s); // Cause a NumberFormatException
      int i = 0;
      int y = 2 / i;
      System.out.println("Welcome to Java");   
    }
    catch (NumberFormatException ex) {
      System.out.println("NumberFormatException");
      throw ex;
    }
    catch (RuntimeException ex) {
      System.out.println("RuntimeException");
    }   
  }
}


A)The program has a compilation error.
B)The program displays NumberFormatException followed by After the method call.
C)The program displays NumberFormatException followed by RuntimeException.
D)The program displays NumberFormatException twice.


28)A Java exception is an instance of ________. 28) ______
A)RuntimeException B)Error C)NumberFormatException D)Exception E)Throwable

異常exception的根類是java.lang.Throwable


29)What exception type does the following program throw?

public class Test {
  public static void main(String[ ] args) {
    Object o = null;
    System.out.println(o);
  }
}

A)No exception
B)ArrayIndexOutOfBoundsException
C)StringIndexOutOfBoundsException
D)NullPointerException
E)ArithmeticException


30)Which of the following statements are true? (Choose all that apply.) 30) ______
A)You use the keyword throws to declare exceptions in the method heading.
B)If a checked exception occurs in a method, it must be either caught or declared to be thrown from the method.
C)A method may declare to throw multiple exceptions.
D)To throw an exception, use the key word throw.

文本IO

31)Which class do you use to write data into a text file? 2) _______
A)File B) System C)Scanner D) PrintWriter

32)Which class do you use to read data into a text file? 10) ______
A)Scanner B) System C)PrintWriter D) File

使用Scanner類從文件中讀取文本數據,使用 PrintWriter 類向文本文件寫入數據

33)Which of the following statements are true? 12) ______
A)If a file (e.g., c:\temp.txt) does not exist, new File("c:\\temp.txt") creates a new file named c:\temp.txt.
B)If a directory (e.g., c:\liang) does not exist, new File("c:\liang") creates a new directory named c:\liang.
C)If a file (e.g., c:\temp.txt) does not exist, new File("c:\\temp.txt") returns null.
D)If a directory (e.g., c:\liang) does not exist, new File("c:\liang") returns null.
E)None of the above.

 

34)Which class contains the method for checking whether a file exists? 14) ______
A)System B) Scanner C)File D) PrintWriter

15)Which of the following statements creates an instance of File on Window for the file c:\t.txt?
A)new File("c:\txt.txt")  B) new File("c:\\txt.txt")
C)new File("c://txt.txt") D) new File("c:/txt.txt")

在java中,反斜槓是一個特殊的字符,應該寫成\\形式


35)Which of the following returns the path separator character? 18) ______
A)File.separatorChar
B)File.pathSeparatorChar
C)File.pathSeparator
D)File.separator
E)None of the above.


36)Which method can be used to write data? 24) ______
A)exist B) print C) close D) rename


37)Which method can be used to create an output object for file temp.txt? (Choose all that apply.)
A)new PrintWriter("temp.txt")
B)new PrintWriter(new File("temp.txt"))
C)new PrintWriter(File("temp.txt"))
D)new PrintWriter(temp.txt)


38)Suppose you enter 34.3, the ENTER key, 57.8, the ENTER key, 789, the ENTER key. Analyze the following code.

Scanner scanner = new Scanner(System.in); int value = scanner.nextDouble(); int doubleValue = scanner.nextInt(); String line = scanner.nextLine();

A)After the last statement is executed, intValue is 34.
B)After the last statement is executed, line contains characters '7 ', '8 ', '9'.
C)After the last statement is executed, line contains character  '\n '.
D)The program has a runtime error because 34.3 is not an integer.
E)After the last statement is executed, line contains characters '7', '8', '9', '\n'.

 

39)Which method can be used to create an input object for file temp.txt? 31) ______
A)new Scanner("temp.txt")
B)new Scanner(temp.txt)
C)new Scanner(File("temp.txt"))
D)new Scanner(new File("temp.txt"))


40)What are the reasons to create an instance of the File class? (Choose all that apply.) 37) ______
A)To delete the file.
B)To read/write data from/to a file
C)To rename the file.
D)To obtain the properties of the file such as whether the file can be read, written, or is hidden.
E)To determine whether the file exists.

41)Which method can be used to read a whole line from the file? 43) ______
A)nextDouble B) nextLine C)next D) nextInt

相關文章
相關標籤/搜索