Java.io.IOException
semble être le type d’exception le plus courant; par coïncidence, il semble également être le plus ambigu. Je continue à voir le throws IOException
lorsque vous écrivez avec des sockets, des fichiers, etc. Cependant, je n'ai jamais vraiment tiré sur moi, alors je me demande ce qui est censé déclencher l'exception. La documentation n'est pas très utile pour expliquer ce qui se passe:
Signale qu'une exception d'E/S de quelque sorte s'est produite. Cette classe est la classe générale des exceptions générées par des opérations d'E/S échouées ou interrompues.
Quelqu'un peut-il s'il vous plaît expliquer certains cas où une exception IOException serait levée, ou comment elle est censée être utilisée.
Supposons que vous soyez:
Il existe de nombreux autres exemples, mais ceux-ci sont les plus courants, selon mon expérience.
En général, I/O signifie Entrée ou Sortie. Ces méthodes lancent le IOException
chaque fois qu'une opération d'entrée ou de sortie échoue ou est interprétée. Notez que cela ne sera pas jeté pour lecture ou écriture en mémoire comme Java le gérera automatiquement.
Voici quelques cas qui aboutissent à IOException
.
La documentation Java est utile pour connaître la cause première de (IOException
Il suffit de jeter un coup d’œil sur direct known sub-interfaces
De IOException
depuis la page de documentation:
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
La plupart de ces exceptions sont explicites.
Peu de IOExceptions
avec des causes profondes:
EOFException : Indique qu'une fin de fichier ou une fin de flux a été atteinte de manière inattendue lors de l'entrée. Cette exception est principalement utilisée par les flux d’entrée de données pour signaler la fin du flux
SocketException : Émis pour indiquer qu’une erreur est survenue lors de la création ou de l’accès à un Socket.
RemoteException : Une RemoteException est la superclasse commune pour un certain nombre d'exceptions liées à la communication pouvant survenir pendant l'exécution d'un appel de méthode à distance. Chaque méthode d'une interface distante, une interface qui étend Java.rmi.Remote, doit lister RemoteException dans sa clause throws.
nknownHostException : levé pour indiquer que l'adresse IP d'un hôte n'a pas pu être déterminée. (vous n'êtes peut-être pas connecté à internet)
MalformedURLException : Lancé pour indiquer qu'une URL mal formée s'est produite. Aucun protocole légal n'a pu être trouvé dans une chaîne de spécification ou la chaîne n'a pas pu être analysée.