黑马程序员技术交流社区
标题:
异常抛出语句位置的问题
[打印本页]
作者:
章闽
时间:
2012-10-23 20:57
标题:
异常抛出语句位置的问题
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");
为什么?不是不会执行到它吗?
作者:
李润根
时间:
2012-10-23 21:18
throw new IOException () ;//一执行到这句就抛出,所以下面的永远执行不到
永远执行不到,那写来干嘛呢,所以JAVA不能有这种写法
作者:
fdiskfix
时间:
2012-10-23 21:20
抛出异常信息后,下面不再继续执行了!
作者:
班志国
时间:
2012-10-23 21:25
你抛出异常了 到这句 就终止了 不在执行下一句了
作者:
马磊
时间:
2012-10-23 21:30
throw new IOException () ; 你在try里面第一句就抛出异常,那么try内部的所有其他语句都无法执行到了,编译器发现了这个问题,所以编译不能通过。
throw exception语句之后一般不能跟其他语句。
作者:
秦松
时间:
2012-10-23 21:44
本帖最后由 秦松 于 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);
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2