A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 章闽 中级黑马   /  2012-10-23 20:57  /  1437 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.io.*;
public class J_example
{
   public static void main(String[]args)
   {
  try
  {  throw new IOException () ;//为什么异常语句在这里就不行呢?
    RandomAccessFile f = new RandomAccessFile("test.txt","rw");//有异常不是不能执行到这一句?
    int i ;
    double d ;
    for(i=0;i<10;i++)
    {
     f.writeDouble(Math.PI*i);
    }
    f.seek(16);
    f.writeDouble(0);
    f.seek(0);
     for(i=0;i<10;i++)
     {
      d=f.readDouble();
      System.out.println("["+i+"]:"+d);
     }
    }
    catch(IOException e)
  {
   System.out.println(e);
   System.exit(-1);
   }
}
}
编译出错:无法访问的语句 RandomAccessFile f = new RandomAccessFile("test.txt","rw");   

为什么?不是不会执行到它吗?

评分

参与人数 1技术分 +1 收起 理由
谭立文 + 1

查看全部评分

5 个回复

倒序浏览
throw new IOException () ;//一执行到这句就抛出,所以下面的永远执行不到

永远执行不到,那写来干嘛呢,所以JAVA不能有这种写法

评分

参与人数 1技术分 +1 收起 理由
谭立文 + 1

查看全部评分

回复 使用道具 举报
抛出异常信息后,下面不再继续执行了!

评分

参与人数 1技术分 +1 收起 理由
谭立文 + 1

查看全部评分

回复 使用道具 举报
你抛出异常了 到这句 就终止了 不在执行下一句了

评分

参与人数 1技术分 +1 收起 理由
谭立文 + 1

查看全部评分

回复 使用道具 举报
throw new IOException () ;  你在try里面第一句就抛出异常,那么try内部的所有其他语句都无法执行到了,编译器发现了这个问题,所以编译不能通过。
throw exception语句之后一般不能跟其他语句。

评分

参与人数 1技术分 +1 收起 理由
谭立文 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 秦松 于 2012-10-23 21:48 编辑

public static void main(String[]args)
           {
          try
           {  if(false)//在这里加以个判断条件,那么jVM就认为这个异常不一定会发生,那就可以啦
                     throw new IOException () ;//不能直接在这里抛出异常,会导致下面的代码执行不到,也就成了多余的代码,java里面是不允许的
             RandomAccessFile f = new RandomAccessFile("test.txt","rw");//一旦有异常,这里执行不到
             int i ;
             double d ;
             for(i=0;i<10;i++)
             {
              f.writeDouble(Math.PI*i);
             }
             f.seek(16);
             f.writeDouble(0);
             f.seek(0);
              for(i=0;i<10;i++)
              {
               d=f.readDouble();
               System.out.println("["+i+"]:"+d);
              }
             }
             catch(IOException e)
          {
            System.out.println(e);
            System.exit(-1);
            }
         }
}

评分

参与人数 1技术分 +1 收起 理由
谭立文 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马