Java – Что вызывает исключение IOException

java.io.IOException , по-видимому, является наиболее распространенным типом исключения, по совпадению, он кажется также самым двусмысленным. Я все время вижу throws IOException при записи сокетами, файлами и т. Д. Тем не менее, я никогда не стрелял в меня, поэтому мне интересно, что это такое, что должно быть сделано для исключения. Документация не очень помогает в объяснении того, что происходит:

Сигналы о том, что произошло какое-либо исключение ввода-вывода. Этот class является общим classом исключений, вызванных неудачными или прерванными операциями ввода-вывода.

Может кто-нибудь объяснить некоторые случаи, когда будет выбрано исключение IOException или как оно должно использоваться.

3 Solutions collect form web for “Java – Что вызывает исключение IOException”

Предположим, вы были:

  1. Чтение сетевого файла и его отсоединение.
  2. Чтение локального файла, который больше не доступен.
  3. Использование некоторого streamа для чтения данных, а другой процесс закрыл stream.
  4. Попытка прочитать / записать файл, но не имеет разрешения.
  5. Попытка написать файл, но дисковое пространство больше не доступно.

Есть еще много примеров, но они наиболее распространены в моем опыте.

В общем, ввод-вывод означает ввод или вывод . Эти методы IOException всякий раз, когда операция ввода или вывода не выполняется или интерпретируется. Обратите внимание, что это не будет брошено для чтения или записи в память, так как Java будет обрабатывать его автоматически.

Вот некоторые случаи, которые приводят к IOException .

  • Чтение из закрытого входного streamа
  • Попробуйте получить доступ к файлу в Интернете без сетевого подключения

Документация по Java полезна, чтобы знать основную причину конкретного исключения IOException

Просто взгляните на direct known sub-interfaces IOException странице документации:

ChangedCharSetException, CharacterCodingException, CharConversionException, ClosedChannelException, EOFException, FileLockInterruptionException, FileNotFoundException, FilerException, FileSystemException, HttpRetryException, IIOException, InterruptedByTimeoutException, InterruptedIOException, InvalidPropertiesFormatException, JMXProviderException, JMXServerErrorException, MalformedURLException, ObjectStreamException, ProtocolException, RemoteException, SaslException, SocketException, SSLException, SyncFailedException, UnknownHostException, UnknownServiceException, UnsupportedDataTypeException, UnsupportedEncodingException, UserPrincipalNotFoundException, UTFDataFormatException, ZipException

Большинство из этих исключений самоочевидны.

Мало IOExceptions с коренными причинами:

EOFException : Сигналы о том, что конец файла или конец streamа неожиданно достигнут во время ввода. Это исключение в основном используется streamами ввода данных в конец сигнала streamа

SocketException : брошено, чтобы указать, что существует ошибка при создании или доступе к Socket.

RemoteException : RemoteException является общим суперclassом для ряда связанных с связью исключений, которые могут возникать во время выполнения удаленного вызова метода. Каждый метод удаленного интерфейса, который расширяет java.rmi.Remote, должен указывать RemoteException в предложении throws.

UnknownHostException : брошено, чтобы указать, что IP-адрес хоста не может быть определен. (вы не можете подключиться к Интернету)

MalformedURLException : брошено, чтобы указать, что произошел неверный URL. Либо ни один юридический протокол не может быть найден в строке спецификации, или строка не может быть проанализирована.

  • Когда следует использовать Throwable вместо нового исключения?
  • исключение исключений из деструктора
  • Puzzling Enumerable.Cast InvalidCastException
  • Когда я должен действительно использовать noexcept?
  • Ловить несколько исключений сразу?
  • Почему исключения следует использовать консервативно?
  • Когда нужно поймать java.lang.Error?
  • Почему я получаю «Исключение; должен быть пойман или объявлен брошенным ", когда я пытаюсь скомпилировать свой Java-код?
  • Почему существует NotImplementedException?
  • Как использовать try catch для обработки исключений - лучшая практика
  • Не удалось загрузить файл или сборку ... Параметр неверен
  • Interesting Posts

    Использование нового Unity VideoPlayer и VideoClip API для воспроизведения видео

    Сравнение поплавков и удвоений IEEE для равенства

    Android Facebook SDK 3.0 дает «remote_app_id не соответствует сохраненному идентификатору» при входе в систему

    Как я могу разобрать строку с разделителем запятой на число?

    Найти кратчайший путь в графе, который посещает определенные узлы

    Как автоматически вставить пустую строку после группы данных

    Удалите кнопку «Показывать рабочий стол» рядом с часами в Windows 7

    Как получить дополнительную информацию из неинформативного Windows 8 BSOD?

    Видео, созданное с помощью изображений, воспроизводится только в VLC, но нет других игроков

    Как OpenGL работает на самом низком уровне?

    VirtualBox: использование физического раздела в качестве виртуального диска

    Как создать короткие URL-адреса для сайтов на моем компьютере?

    Щелкните прозрачность для оконных форм Visual C #?

    Аргументы ввода и командной строки пользователя

    Подстановочные знаки Windows с файлами с расширениями более 3 символов

    Давайте будем гением компьютера.