代码之家  ›  专栏  ›  技术社区  ›  Victor

什么是IOException,如何修复它?

  •  1
  • Victor  · 技术社区  · 6 年前

    什么是IO异常(java.io.IOException异常)是什么导致了他们?

    可以使用哪些方法/工具来确定原因,从而阻止异常导致提前终止?这意味着什么,我能做些什么来修复这个异常?

    4 回复  |  直到 6 年前
        1
  •  5
  •   Code Daddy    5 年前

    在编写可能引发I/O异常的代码时,请尝试在 try-catch 阻止。您可以在此处阅读更多关于它们的信息: https://docs.oracle.com/javase/tutorial/essential/exceptions/catch.html

    您的捕获块应该如下所示:

    try {
        //do something
    }catch(FileNotFoundException ex){
        System.err.print("ERROR: File containing _______ information not found:\n");
        ex.printStackTrace();
        System.exit(1);
    }
    
        2
  •  4
  •   Stef    6 年前

    干得好 https://docs.oracle.com/javase/7/docs/api/java/io/IOException.html

    IOException 在输入输出操作期间发生错误时引发。可以读/写文件、流(任何类型)、网络连接、与队列的连接、数据库等,几乎所有与从软件到外部介质的数据传输有关的内容。

    为了修复它,您需要查看异常的堆栈跟踪,或者至少是消息,以查看抛出异常的确切位置以及原因。

    try {
        methodThrowingIOException();
    } catch (IOException e) {
        System.out.println(e.getMessage()); //if you're using a logger, you can use that instead to print.
        //e.printStackTrace(); //or print the full stack.
    }
    

        3
  •  3
  •   mckuok    6 年前

    这是一个非常常见的异常,很多IO操作都会导致这种异常。最好的方法是读取堆栈跟踪。要继续执行,可以使用 try-catch 块来绕过异常,但正如您所提到的,您应该调查其原因。

    try {
        // IO operation that could cause an exception
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    
        4
  •  1
  •   kPs    6 年前

    IOException通常是用户向程序中输入不正确数据的情况。这可能是程序无法处理的数据类型,也可能是不存在的文件名。发生这种情况时,会发生异常(IOException),告诉编译器发生了无效输入或无效输出。

    正如其他人所说,您可以使用try-catch语句来阻止过早终止。

    try {
     // Body of code
    } catch (IOException e) {
     e.printStackTrace();
    }