先回答楼主的第一个问题:“e==null怎么可以调用呢?”
当对象或的异常时,都会抛出一个异常,就像楼主的“try{异常代码}”,此时这个“异常代码”,就会
抛出一个异常对象,而“catch(Exception e)”就是把这个异常对象捕获到!括号里面就想当于“
Exception e=new Exception或其子类()”所以e!=null。
第二个问题
finally:永远被执行,除非退出jvm。System.exit(0);当代码执行到“return”时,会先去执行finally里面的
代码;
第三个问题
异常处理throw和throws的区别
throws用在方法声明上,标识该方法有异常抛出。其后跟的是异常类名。
如果这个异常是Exception系列,那么,需要调用者捕获或者抛出。
如果这个异常是RuntimeException系列,那么,可以不做任何处理。并且,连throws都可以省略。
throw用于方法体中,表示某种情况下抛出了某个异常。其后跟的是异常对象。
如果这个异常是Exception系列,需要在方法上用throws标识。
如果这个异常是RuntimeException系列,则不需要标识。
public void method(int num) throws Exception
{
if(num==0)
{
throw new Exception();
}
System.out.println(10/0);
}
|