2009年2月16日 星期一

第140題

Given:
1. public class A{
2. public void method1(){
3. B b = new B();
4. b.method2();
5. //more code here
6. }
7. }

1. public class B{
2. public void method2(){
3. C c = new C();
4. c.method3();
5. //more code here
6. }
7. }

1. public class C{
2. public void method3(){
3. //more code here
4. }
5. }

And given:
25. try{
26. A a = new A();
27. a.method1();
28. }catch(Exception e){
29. System.out.print("an error occurred");
30. }

Which two statements are true if a NullPointerException is thrown on line 3 of class C? (Choose two.)

A. The application will crash.
B. The code on line 29 will be executed.
C. The code on line 5 of class A will execute.
D. The code on line 5 of class B will execute.
E. The exception will be propagated back to line 27.

答案:BE
參考:9-2 Java例外事件與處理機制、9-5 使用throws拋出例外事件。
-----------------------------------------------------------------------
類別c的第3行會產生NullPointerException
25. try{
26. A a = new A();
27. a.method1();
>>2. public void method2(){
>>3. C c = new C();
>>4. c.method3();
>>>>2. public void method2(){
>>>>3. C c = new C();
>>>>4. c.method3();
>>>>>>2. public void method3(){ //產生NullPointerException
NullPointerException會丟回原呼叫的27. a.method1(); 後再被28行catch到後執行第29行

沒有留言:

張貼留言