什么是IOException,如何解决?

时间:2018-09-06 01:03:47

标签: java ioexception

什么是IO异常(java.io.IOException)?是什么引起的?

可以使用哪些方法/工具确定原因,以阻止异常导致过早终止?这是什么意思,我该怎么做才能解决此异常?

4 个答案:

答案 0 :(得分:4)

Java IOExceptions是输入/输出异常(I / O),每当输入或输出操作失败或解释时就会发生。例如,如果您尝试读取一个不存在的文件,则Java会抛出I / O异常。

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

您的catch块应如下所示:

try {

}catch(FileNotFoundException ex) {
            System.err.print("ERROR: File containing _______ information not found:\n");
            ex.printStackTrace();
            System.exit(1);
        }

答案 1 :(得分:3)

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

要打印堆栈跟踪:

try {
    // IO operation that could cause an exception
} catch (Exception ex) {
    ex.printStackTrace();
}

答案 2 :(得分:3)

您在这里https://docs.oracle.com/javase/7/docs/api/java/io/IOException.html

输入输出操作期间发生错误时,抛出

IOException。这可以是读/写文件,流(任何类型的流),网络连接,与队列的连接,数据库等,几乎与从软件到外部介质的数据传输有关。 / p>

为了解决该问题,您可能希望查看异常的堆栈跟踪或至少显示消息,以确切查看异常的发生位置以及原因。

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.
}

将显示的错误消息可能会向您显示问题所在。如果您在此处添加错误消息,我将能够为您提供有关如何修复特定IOException的更多信息。没有这一点,没有人能真正给您完整的答案。

答案 3 :(得分:1)

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

就像其他人所说的那样,您可以使用try-catch语句停止过早终止。

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