什么是IO异常(java.io.IOException)?是什么引起的?
可以使用哪些方法/工具确定原因,以阻止异常导致过早终止?这是什么意思,我该怎么做才能解决此异常?
答案 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();
}