2009年2月17日 星期二

第132題

Given:
1. class TestException extends Exception{}
2. class A{
3. public String sayHello(String name) throws TestException{
4. if(name == null) throw new TestException(),
5. return "Hello " + name;
6. }
7. }
8. public class TestA{
9. public static void main(String[] args){
10. new A().sayHello("Aiko");
11. }
12. }

Which statement is true?
A. Compilation succeeds.
B. class A does not compile.
C. The method declared on line 9 cannot be modified to throw TestException.
D. TestA compiles if line 10 is enclosed in try/catch block that catches TestException.
答案:D

參考:9-2 Java例外事件與處理機制、9-3 使用throw自行產生例外事件、9-4 自訂例外類別、9-5 使用throws拋出例外事件。

-----------------------------

11行呼叫了 SayHello(), 並SayHello() 說明了可能會拋出TestException, TestException 是 Exception 子類別, 所拋出的exception由第10行處理, 所以第10行必須有try / catch 或是 手動 throw Exception.

沒有留言:

張貼留言