Les classes d'E/S Java java.io.Reader
, java.io.Writer
, java.io.InputStream
, java.io.OutpuStream
et leurs diverses sous-classes ont toutes une close()
qui peut lancer un IOException
.
Existe-t-il un consensus sur la manière appropriée de traiter ces exceptions ?
J'ai souvent vu des recommandations pour les ignorer silencieusement, mais cela ne semble pas correct, et au moins dans le cas de ressources ouvertes à l'écriture, un problème lors de la fermeture du fichier pourrait signifier que les données non vidées ne pourraient pas être écrites/envoyées.
D'autre part, lorsque je lis des ressources, je ne comprends pas du tout pourquoi close()
pourrait lancer et ce qu'il faut faire.
Existe-t-il donc une recommandation standard ?
Une question connexe est Est-ce que close ne lève jamais une IOException ? mais il s'agit plutôt de savoir quelles sont les implémentations réellement faire et non sur la façon de gérer les exceptions.