首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

java的一些题目解决方案

2012-01-13 
java的一些题目阅读程序题, 写出结果并写出原因class MyException extends Exception {public MyException

java的一些题目
阅读程序题, 写出结果并写出原因

class MyException extends Exception {
  public MyException(String message) {
  super(message);
  }
}
public class Test {
  private static void fun1() throws MyException {
  throw new MyException("An MyException object is thrown in fun1().");
  }  
  private static void fun2() throws MyException {
  try {
  fun1();
  }
  catch(NullPointerException ex) {
  System.out.println("NullPointerException:"+ex.getMessage());
  }
  finally {
  System.out.println("Go through finally code in fun2().");
  }
  }  
  public static void main (String[] args) { 
  try {
  fun2();
  }
  catch(MyException ex) {
  System.out.println("MyException:"+ex.getMessage());
  }
  catch(Exception ex) {
  System.out.println("Exception:"+ex.getMessage());
  }
  }
  }


[解决办法]
调用fun2(),然后调用fun1(),在fun1()中会抛出一个异常
MyException,但是fun2()尤其定义可知,它并不会进行处理,
而是在其执行完之后将异常再抛出去(抛给调用者),所以
fun2()会执行到finally语句块,先输出"Go through finally ...",
然后再回到main方法中调用fun2()后捕获异常的catch(MyException),
所以也就会输出“MyException: An MyException ...”。
[解决办法]
输出:

Go through finally code in fun2().
MyException:An MyException object is thrown in fun1().

热点排行