本帖最后由 刘源 于 2012-7-27 14:13 编辑
import java.io.*;
class FileWriterDemo2
{
public static void main(String[] args)
{
FileWriter fw2 =null;
try
{
fw2 = new FileWriter("s:\\demo.txt");
fw2.write("LIUYUAN");
fw2.flush();
}
catch (IOException io)
{
System.out.println("new:::::::"+io.toString());
}
finally
{
try
{
//if(fw2!=null)
fw2.close();
}
catch (IOException io)
{
System.out.println("close::::::"+io.toString());
}
}
}
}
此程序的异常是:
new:::::::java.io.FileNotFoundException: s:\demo.txt (系统找不到指定的路径。)
Exception in thread "main" java.lang.NullPointerException
at FileWriterDemo2.main(FileWriterDemo2.java:23)
去掉//的异常是:
newjava.io.FileNotFoundException: s:\demo.txt (系统找不到指定的路径。)
我的问题是:
第一个异常抛出是fw2 = new FileWriter("s:\\demo.txt");语句引起的,
还是fw2 = new FileWriter("s:\\demo.txt");和fw2.close();这2个语句同时引起的。
如果只是一个引起的,为什么加了//if(fw2!=null)后,异常结果变了。
如果是两个语句引起的,为什么System.out.println("close::::::"+io.toString());这个语句没有执行到。 |