黑马程序员技术交流社区

标题: IO中添加指定文件为什么要抛异常?急求解 [打印本页]

作者: 王舒玮    时间: 2012-11-27 21:22
标题: IO中添加指定文件为什么要抛异常?急求解
public class FileDemo2 {
        private Object d;

        public static void main(String[] args)throws IOException {
                //创建File对象
                File file = new File("D:\\a.txt");
                //添加指定文件
                System.out.println("createNewFile"+file.createNewFile());
作者: 杨卫腾    时间: 2012-11-27 21:37
这个指定的文件你知道是存在的呀,但是编译器不一定知道呀!

这就是预先处理可能出现的问题。
作者: vipzh    时间: 2012-11-27 22:22
因为源程序中用到了throws IOException,就是把异常抛出给调用它的程序,也就是说你必须接受他或用thows抛给调用你的方法的方法
作者: 朝花夕拾    时间: 2012-11-27 22:25
当在编译过程中,有可能你输入的盘符不存在,这样编译器开始编译的时候要做检查动作,需要对有可能发生的异常做处理动作!!!
作者: 付莹    时间: 2012-11-28 15:27
当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexoutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable的子类。
抛异常是作为另一个返回值处理程序,保证程序的顺序执行。
createNewFile
public boolean createNewFile()
                      throws IOException 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。检查文件是否存在,若不存在则创建该文件,这是单个操作,对于其他所有可能影响该文件的文件系统活动来说,该操作是不可分的。
注:此方法不应该 用于文件锁定,因为所得协议可能无法可靠地工作。应该使用 FileLock 机制替代。
返回:如果指定的文件不存在并成功地创建,则返回 true;如果指定的文件已经存在,则返回 false 抛出: IOException - 如果发生 I/O 错误 SecurityException - 如果存在安全管理器,且其 SecurityManager.checkWrite(java.lang.String) 方法拒绝对文件进行写访问。
作者: 王舒玮    时间: 2012-11-29 21:26
杨卫腾 发表于 2012-11-27 21:37
这个指定的文件你知道是存在的呀,但是编译器不一定知道呀!

这就是预先处理可能出现的问题。 ...

谢谢 懂了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2