Java - o que lança uma Ioexcepção

java.io.IOException parece ser o tipo mais comum de exceção, coincidentemente, parece também ser o mais ambíguo. Eu continuo vendo o {[[1]} sempre que escrevo com sockets, arquivos, & C. Eu nunca realmente tive um disparado sobre mim, no entanto, eu estou me perguntando o que é que é suposto para disparar a exceção. A documentação não ajuda muito a explicar o que se passa.

indica que ocorreu uma excepção de E / S de algum tipo. Esta classe é a classe geral de excepções resultantes de operações de E/S falhadas ou interrompidas.

Alguém pode explicar alguns casos em que uma Ioexcepção seria lançada, ou como deveria ser utilizada.

Author: Zaq, 2012-11-04

3 answers

Assume que foste:

    A ler um ficheiro de rede e foi desligado. A ler um ficheiro local que já não estava disponível.
  1. usando algum fluxo para ler dados e algum outro processo fechou o fluxo.
  2. Estou a tentar ler/escrever um ficheiro, mas não tenho permissão.
  3. a tentar escrever num ficheiro, mas o espaço em disco já não estava disponível.
Há muitos mais exemplos, mas estes são os mais comuns, na minha experiência.
 47
Author: Yogendra Singh, 2016-07-14 02:39:09

Em Geral, I / O significa entrada ou saída. Esses métodos lançam o IOException sempre que uma operação de entrada ou saída é mal-sucedida ou interpretada. Note que isto não será jogado para ler ou escrever à memória porque o Java irá lidar com isso automaticamente.

Aqui estão alguns casos que resultam em IOException.

  • leitura de um fluxo interno fechado
  • tente aceder a um ficheiro na internet sem ligação à rede
 8
Author: Sri Harsha Chilakapati, 2016-10-16 10:01:55

A documentação Java é útil para conhecer a causa principal de particular Ioexcepção

Dê uma olhada em direct known sub-interfaces de {[1] } da página de documentação:

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

A maioria destas excepções são auto-explicativas.

Poucos IOExceptions com causas profundas:

Eofexception: indica que um fim do ficheiro ou fim do fluxo foi atingido inesperadamente durante a entrada. Esta excepção é principalmente utilizada pelos fluxos de entrada de dados para sinalizar o fim de stream

Socket exception: lançado para indicar que existe um erro ao criar ou aceder a um 'Socket'.

Vista remota : uma visão remota é a superclasse comum para uma série de exceções relacionadas com a comunicação que podem ocorrer durante a execução de uma chamada de método remoto. Cada método de uma interface remota, uma interface que estende java.socio.Remoto, deve listar o conceito remoto em sua cláusula de arremesso.

Excepção desconhecida : jogada para indicar que o endereço IP de uma máquina não pôde ser determinado. (você não pode estar conectado à internet)

Malformedurlexcepção: jogada para indicar que ocorreu um URL malformado. Ou nenhum protocolo legal poderia ser encontrado em uma cadeia de especificação ou a cadeia não poderia ser processada.

 3
Author: Ravindra babu, 2016-07-14 09:19:39