public class ExceptionExam4{
public static void main(String[] args){
try
{
int [] a=new int[3];
a[3]=4;
return;
}
catch(ArithmeticException e)
{
System.out.println("发生了异常");
}
finally
{
System.out.prinln("最后执行的语句!");
}
}
}
请问一下上述代码中return语句是有何用啊?不带参数的return是有什么作用的?谢谢赐教!!!
public static void main(String[] args){
try
{
int [] a=new int[3];
a[3]=4;
return;
}
catch(ArithmeticException e)
{
System.out.println("发生了异常");
}
finally
{
System.out.prinln("最后执行的语句!");
}
}
}
请问一下上述代码中return语句是有何用啊?不带参数的return是有什么作用的?谢谢赐教!!!
这里很明显是你故意让访问越界,要是是不能预知的,比如由一个外部方法返回来作为索引值。
就不知道是否有异常,假设程序能正常执行,当然要retuen返回。
return带参和不带在是否被执行这一关注点上是平等的
即使catch到了异常 由于异常先于return句 try中的return也会被忽略了
否 则在finally block之后执行
这里的return好像是没什么用,写不写都一样
明显不对,不管有没有return。finally肯定执行LZ这里的return没有任何作用
而你这里的这个程序正好是在main方法里,返回类型为void,所以可以不写return
try是和catch,finally搭配的,与return无关
不过,finally是“最终”的意思,在程序中,不管有没有return;有没有异常,它始终都会执行!
当执行try块的时候就结束不运行finally了,如果有异常不光要做catch,还要做finally
public void trycatch(){
try {
//Integer i=new Integer("12345678wwww");//去掉注释,这里会打印outer
//Integer j=new Integer("12345678"); //去掉注释,这里不会打印outer
return ;
} catch (Exception e) {
e.printStackTrace();
}finally{
System.out.println("finally");
}
System.out.println("outer");
}
如果加上System.exit(0),那就直接退出,不执行finally和后面的outer
a[3]=4;//越界try 块中是return语句的,finally块必执行
try 中是System.exit(0),直接终止程序,不执行finally块.
但是有时需要用这个来中断行为.引伸一下如class test{ private int money = 0; public void buyThing(){
money = getSalary();//发工资了?可以买东西...没发工资?失望中,呆头呆脑回家.
if(money == 0)
return;
buySomeThing();
}
}