各位高手,我的java教程里的有段代码是这样的,的确能编译运行,但是我搞不懂catch语句块内的return后面什么也没有是什么意思,而且如果我把两个rentun删了,会出现初始化变量raf报错信息,请问是为什么?import java.io.*;
class RandomAccessData
{
  public static void main(String[] args) throws IOException
  {
    double d;
    RandomAccessFile raf;    try
    {
      raf = new RandomAccessFile("record.dat", "rw");
    }
    catch (FileNotFoundException e)
    {
      System.out.println("Can't open file");
      return;
    }    for (int i = 0; i < 10; i++)
    {
      try
      {
        raf.writeDouble((double)i);
      }
      catch (IOException e)
      {
        System.out.println("Error writing to file");
        return;
      }
    }    try
    {
      for (int i = 0; i < raf.length()/8; i++)
      {
        raf.seek(i * 8);
        d = raf.readDouble();
        System.out.println("value(" + (i + 1) + ") = " + d);
      }
    }
    catch (IOException e)
    {
      System.out.println("Error seeking or reading");
    }
    raf.close();
  }
}

解决方案 »

  1.   

    return 表示退出方法那是因为程序捕获到异常啦
      

  2.   

    程序捕获到异常后就退出了
    如果不加 return 的话,即使出现了异常,后面的循环也会继续执行下去.
      

  3.   

    return是返回的意思,因为你的方法的返回值类型是void,所以后面不需要写什么内容的,作用是使方法结束。去掉为什么出错是因为你的raf对象没有初始化,没有初始化当然不能直接使用。如果想没有语法错误,可以这样修改:
    RandomAccessFile   raf = null; 
      

  4.   

    同学,你的方法的类型是void,只有return回去了。
      

  5.   

    我的理解是 既然你打开文件都失败了 捕捉到这个错误后 后面的代码就不用执行下去 所以就return 返回 退出方法