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

面试时遇到的try catch finally有关问题

2012-01-18 
面试时遇到的try catch finally问题public class test2 {static void fun(){try{throw new NullPointerExc

面试时遇到的try catch finally问题

public class test2 {
  static void fun(){
  try{
  throw new NullPointerException();
  }catch(Exception e){
  System.out.println("第一个try块!");
  }finally{
  System.out.println("第一个finally!");
  }
  }
  public static void main(String[] argv){
  try{
  fun();
  }catch(Exception e){
  System.out.println("第二个try块!");
  }finally{
  System.out.println("第二个finally!");
  }
  }
}
运行结果为:
第一个try块!
第一个finally!
第二个finally!
为什么主方法里的catch不执行啊?



[解决办法]
饿...主方法里面又没抛出异常不会没捕获为什么要输出呢?子类已经捕获了饿.
[解决办法]
说错...fun里面已经捕获了..
[解决办法]
你在fun函数中,已经捕获了异常信息~~如果你还想继续让他上层处理这个异常,你应该把异常继续抛出。


try{
throw new NullPointerException();
}catch(Exception e){
System.out.println("第一个try块!");
throw e; // 把异常信息抛出
}
[解决办法]
在main方法中调用fun方法不会产生异常,所以也就没什么异常可以catch的了
[解决办法]
fun里已经把异常捕获了,如果要main里也catch,就要在定义fun的时候再把异常抛出
[解决办法]
main调用fun时。fun出错了,但是fun的异常被fun自己捕获了,所以fun里面的catch会执行,然后执行finally,因为fun并没有向外抛出异常,而是自己处理了。所以main没有得到错误信息,所以main的catch不会执行,直接执行finally
[解决办法]
已经被捕获啦,除非fun方法throws Exception
[解决办法]
楼上已经出得很多了,
[解决办法]
7楼说的够详细了
[解决办法]
在fun()里已经被catch了
[解决办法]
出现异常就会执行
[解决办法]
都回答了,俺来拿分
[解决办法]
catch说明程序有异常了~

热点排行