Java catch IOException

时间:2011-04-02 14:59:40

标签: java exception ioexception

我认为这是基本的东西,但我不知道该怎么做。为什么我会IOException never thrown in body of corresponding try statement

public static void main(String[] args)
    {
        File inputFile = null ;

        try
        {
            inputFile = new File("records.txt") ;   
        }
        catch (IOException e)
        {
            System.out.print("file not found!") ;
        }

5 个答案:

答案 0 :(得分:5)

File构造函数本身并没有做太多。

直到你真正开始执行实际操作才能抛出IOExceptions。

答案 1 :(得分:5)

它永远不会抛出IOException。创建File对象不会将其连接到磁盘上的任何内容。也就是说,没有IO。

如果您尝试从磁盘上没有相应文件的File对象读取或写入,您将获得IOExceptions。例如,如果您尝试从实际上不在磁盘上的文件中获取“循环路径”。

答案 2 :(得分:2)

因为您可以使用您想要的任何字符串来实例化文件对象。当您尝试读取/写入/打开实际文件时,稍后会收到异常。

答案 3 :(得分:1)

File(String)不会抛出IOException,因此您当时无法抓住它。

答案 4 :(得分:0)

如果要检查文件是否存在,请使用file.exists()执行此操作。除此之外:

  • 永远不会吞下异常 - 始终记录堆栈跟踪或重新抛出异常(例如将其包装在运行时异常中)

  • 不依赖于程序流程的异常处理 - 这些应该是例外情况。