Что такое IOException и как я могу это исправить? - PullRequest
0 голосов
/ 06 сентября 2018

Что такое исключения ввода-вывода (java.io.IOException) и что их вызывает?

Какие методы / инструменты можно использовать для определения причины, чтобы исключить преждевременное завершение исключения? Что это значит, и что я могу сделать, чтобы исправить это исключение?

Ответы [ 4 ]

0 голосов
/ 06 сентября 2018

IOException - это обычно тот случай, когда пользователь вводит неверные данные в программу. Это могут быть типы данных, которые программа не может обработать, или имя файла, который не существует. Когда это происходит, возникает исключение (IOException), сообщающее компилятору, что произошел неверный ввод или неверный вывод.

Как уже говорили другие, вы можете использовать оператор try-catch, чтобы остановить преждевременное завершение.

try {
 // Body of code
} catch (IOException e) {
 e.printStackTrace();
}
0 голосов
/ 06 сентября 2018

Java IOException - это исключения ввода-вывода (I / O), которые возникают всякий раз, когда операция ввода-вывода завершается неудачно или интерпретируется. Например, если вы пытаетесь прочитать файл, который не существует, Java выдаст исключение ввода-вывода.

При написании кода, который может вызвать исключение ввода / вывода, попробуйте написать код в блоке try-catch. Подробнее о них можно прочитать здесь: https://docs.oracle.com/javase/tutorial/essential/exceptions/catch.html

Ваш блок catch должен выглядеть примерно так:

try {
    //do something
}catch(FileNotFoundException ex){
    System.err.print("ERROR: File containing _______ information not found:\n");
    ex.printStackTrace();
    System.exit(1);
}
0 голосов
/ 06 сентября 2018

Вот, пожалуйста, 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. Без этого никто не сможет дать вам полный ответ.

0 голосов
/ 06 сентября 2018

Это очень общее исключение, которое может вызвать много операций ввода-вывода. Лучший способ - прочитать трассировку стека. Чтобы продолжить выполнение, вы можете использовать блок try-catch, чтобы обойти исключение, но, как вы упоминаете, вы должны выяснить причину.

Чтобы напечатать трассировку стека:

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