Quand une IOException généralement se produire et quelles mesures dois-je prendre pour gérer correctement il?
Je suis en utilisant le Fichier d'Entrée/Sortie flux. Je sais que la lecture d'un fichier qui n'existe pas de programme à l'aide de FileInputStream
donnera FileNotFoundException
. Droit? Donc, je peux attraper cette excpetion et peut retourner la valeur null ou 0 valeur(dépend du type de retour de ma méthode d'effectuer tout cela de lecture) sur l'Exception de transmettre le programme appelant que le fichier n'existe pas et doit créer une.
Mais je ne sais pas quand IOException
se produit en général et quelle est précisément la raison pour laquelle je doit transmettre au programme appelant qui " il "est arrivé à cause de "ça".
J'ai exactement ne sais pas ce qu'est 'ce' et 'que' ici.
Personne, veuillez préciser moi dans ce cas la IOException
peut se produire et que les mesures dois-je prendre dans de tels cas.
S'il vous plaît aider. Merci.
- Parce que vous avez exécuté une opération d'e/S, mais cela entraîne une erreur. Exemple: vous essayez de lire un
int
mais l'application de lire unString
. - que dois-je prendre dans de tels cas, il dépend de l'action que vous êtes en train de faire. Il n'y a pas de réponse spécifique pour cela.
- Chaque méthode de la java.io classes de lancer une IOException est documenté, et explique quand et pourquoi une IOException est levée. Lire la javadoc. En outre, renvoyer 0 ou null n'est généralement pas la bonne façon de traiter avec une IOException. La meilleure façon, en général, est de faire votre propre méthode de jeter le IOException ainsi, et de laisser l'INTERFACE utilisateur de traiter avec eux.
- Il repose sur le code qui vous n'avez pas le post qui va vérifier cette valeur, si c'est mauvais ou bon si il documentées ou non. Mais si vous renvoyer l'exception interceptée, il sera clair.
- Dans mon code supposer que j'ai
readNum()
méthode qui ne lecture à partir d'un fichier à l'aide deFileInputStream
et renvoie la valeur num(intger). Cette méthode est appelée par une autre classe. Bon alors maintenant si le fichier n'existe pas, je peux retourner -1 ou 0 surFileNotFoundException
pour indiquer que le fichier n'existe pas, mais ma question est que dois-je retourner surIOException
pour indiquer que ceci est arrivé à cause de cela. - Nizet : eh Bien Merci pour vos suggestions. Je reviens java doc.
- ne pas retourner -1 ou 0. Laissez votre méthode de jeter une IOException, et laisser l'appelant (l'INTERFACE utilisateur) attraper cette IOException et afficher un message d'erreur.
- Nizet: Oh ya, que l'une est meilleure idée. Merci.
Vous devez vous connecter pour publier un commentaire.
Qu'est ce qu'un
IOException
Un
IOException
est un problème inattendu de la JVM des rencontres lors de la tentative d'exécution d'un programme. Possible les problèmes qu'il peut rencontrer sont:qui a un nom incorrect (une barre oblique ou un point d'interrogation dans le titre
devrait le faire)
sont pas plus de jetons.
Lorsqu'un
IOException
est jeté, il signifie que tout ce qui est en train de jeter l'exception (peut-être untry{}-catch
bloc qui lit les données à partir d'un fichier) peut jeter uneIOException
, par exemple, si le fichier n'est pas trouvé, corrompus, etc, ou lorsque le fichier ne peut être lu, ou tout autre d'une liste de questions que peuvent se produire avec l'IO
paquet et c'est les extensions.Que faire lorsque vous rencontrez un
IOException
?Lorsque vous rencontrez le
IOException
, vous pouvez l'enregistrer ou imprimer un message d'erreur. Si vous lisez à partir d'un fichier qui n'a pas de sortie, vous pouvez en créer un à éviter à l'avenir des exceptions. Cela dépend beaucoup de ce que vous faites. Si vous êtes le débogage, l'impression de la stacktrace est toujours utile.Reportez-vous à la javadoc
Vous pouvez faire les choses suivantes:
Journal l'Exception de l'information sur un fichier journal. Vous pouvez utiliser la méthode suivante pour remplir l'Exception de l'information.
Essayez de fermer la InputStream/OutputStream si elle n'est pas null lorsque l'IOECeption qui se passe en lecture /écriture.
Lever une Exception de votre propre significative message pour permettre à l'utilisateur de savoir ce qui se passe.
Il est généralement lorsque le fichier n'existe pas ou vous n'avez pas les privilèges de lecture/écriture.. etc..
Peut-être d'autres choses bien sûr, la meilleure chose que vous pouvez faire, c'est l'impression du message et de voir ce qui a causé l'exception. En outre, vous pouvez voir sur chaque classe, quelles sont les méthodes jette quoi et quand, je vous conseille d'étudier, cela peut vous aider à couvrir de plus en plus de cas sur lesquels vous pourriez faire face à cette exception.
Que devez-vous faire lorsque vous avez une exception? C'est à vous de une votre de programme, pas de réponse spécifique pour cette, dépend de beaucoup de choses.