什么是IO异常(java.io.IOException)以及导致它们的原因?
可以使用哪些方法/工具来确定原因,以便阻止异常导致提前终止?这是什么意思,我该怎么做才能解决这个异常?
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);
}
这是很多IO操作可能导致的非常通用的异常。最好的方法是读取堆栈跟踪。要继续执行,您可以使用try-catch
块来绕过异常,但正如您所提到的,您应该调查原因。
要打印堆栈跟踪:
try {
// IO operation that could cause an exception
} catch (Exception ex) {
ex.printStackTrace();
}
在这里你去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.
}
将打印的错误消息可能会显示问题所在。如果您在此处添加错误消息,我将能够为您提供有关如何修复特定IOException的更多信息。没有它,没有人能真正给你一个完整的答案。
IOException通常是用户将不正确的数据输入程序的情况。这可能是程序无法处理的数据类型或不存在的文件的名称。发生这种情况时,会发生异常(IOException),告知编译器发生了无效输入或无效输出。
像其他人所说,你可以使用try-catch语句来阻止提前终止。
try {
// Body of code
} catch (IOException e) {
e.printStackTrace();
}