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.
Alguém pode explicar alguns casos em que uma Ioexcepção seria lançada, ou como deveria ser utilizada.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.
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.
- usando algum fluxo para ler dados e algum outro processo fechou o fluxo. Estou a tentar ler/escrever um ficheiro, mas não tenho permissão.
- a tentar escrever num ficheiro, mas o espaço em disco já não estava disponível.
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
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.