J'écris une application et je veux charger un fichier basé sur un chemin fourni par l'utilisateur. Je vérifie l'extension du fichier et quand l'extension ne correspond à rien, je reconnais que je veux lancer une exception.Throw FileLoadException ou juste IOException
Je pourrais lancer un IOException
. Mais, j'ai pensé qu'il pourrait y avoir une exception plus détaillée dérivée de cela. J'ai donc regardé MSDN et trouvé FileLoadException
. Le nom suggère que mon erreur entrerait dans cette catégorie, mais .... quand je regarde sur MSDN il indique: "Représente l'erreur qui se produit quand un dossier d'Assemblée est trouvé mais ne peut pas être chargé." et "L'exception levée lorsqu'un assembly géré est trouvé mais ne peut pas être chargé." Ce n'est absolument pas ce qui est le cas avec mon erreur.
Alors, quelle est la question alors? Bien, je me demande si la documentation signifie réellement que l'exception est censée être jetée à cet effet seulement ou qu'ils signifient simplement que ils lèvent cette exception dans ce cas spécifique, mais ne spécifient pas vraiment quand d'autres devraient le lancer.
Sur la IOException
page sur MSDN, il fait des conseils d'utilisation FileLoadException
le cas échéant:
IOException
est la classe de base pour les exceptions lancées lors de l'accès des informations en utilisant des ruisseaux, des fichiers et des répertoires.La bibliothèque de classes de base comprend les types suivants, dont chacun est une classe dérivée de
IOException
:
- DirectoryNotFoundException
- EndOfStreamException
- FileNotFoundException
- FileLoadException
- PathTooLongException
Le cas échéant, utilisez ces types au lieu de IOException.
CONDENSÉS: Dans le cas d'une extension de fichier inconnu, dois-je jeter un IOException
ou un FileLoadException
(je ne veux pas définir ma propre exception).
Merci d'avance.
Merci pour la réponse. Donc, 'FileLoadException' est-il lancé uniquement dans le cas où un assembly ne peut pas être chargé? –
Je ne peux pas dire avec certitude, mais il semble que c'est la seule utilisation pour laquelle il est destiné. – abyx