什么是IOException,我该如何解决?

问题描述 投票:1回答:4

什么是IO异常(java.io.IOException)以及导致它们的原因?

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

java ioexception
4个回答
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);
        }

3
投票

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

要打印堆栈跟踪:

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

3
投票

在这里你去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的更多信息。没有它,没有人能真正给你一个完整的答案。


1
投票

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

像其他人所说,你可以使用try-catch语句来阻止提前终止。

try {
 // Body of code
} catch (IOException e) {
 e.printStackTrace();
}
© www.soinside.com 2019 - 2024. All rights reserved.