J'ai un fichier texte qui a quelques paramètres de paramètres pour mon projet. Ma couche de bureau lit ce fichier. Dans ce cas, le projet de la couche Web est lu à partir de Mappath de Server. p>
FileStream n'a pas d'opérateur de contourner une exception. J'ai essayé d'exister le contrôle. Mais, j'ai juste besoin de contourner FilenotfoundException. P>
3 Réponses :
Placez le code dans un Essayez d'attraper code>.
Comment de cela,
if (File.Exists(path) { try { // read file, } catch (Some other exception related to file, read access violation, etc.) { handle exception, } }
Que diriez-vous de vérifier le fichier existant ou non?
Si tel est le cas, vous pouvez empêcher de jeter FilenotFoundException.
[Ne peut pas fournir une solution complète / des commentaires car nous n'en sommes pas sûrs de votre implémentation réelle] espère que cela aide. Faites-nous savoir si nécessite plus de clarifications. Ce serait bien que vous puissiez poster votre mise en œuvre de la méthode ou au moins un pseudo code pour que nous puissions comprendre le problème réel que vous essayez de résoudre. P> acclamations, p> p>
Cela introduit une condition de course.
@Ernodeweerd, apprécie si vous pouviez élaborer un peu sur le problème de la condition de course. Merci
Entre le test et l'enlèvement, le fichier pourrait être supprimé et jeter encore Filenotfoundfound
@Ernodeweerd, bonne prise, merci. Mais le problème de sujet ne parle pas de supprimer le fichier. On dirait qu'il veut lire le fichier s'il existe et non d'où mentionné le nettoyage / la suppression du fichier. Ai-je manqué quelque chose dans la question?
La question est (était?) Pour ne pas avoir le lancer de lecture. Il n'y a aucun moyen de l'empêcher. Tout processus pourrait supprimer le fichier afin que la méthode doit être autorisée à lancer. Tout ce que vous pouvez faire, c'est le gérer.
@Ernodeweerd, merci pour l'explication. Maintenant, je comprends votre préoccupation.
Oui, la question portait sur le lancer de lecture. Mais, je dois trouver une solution pour ne pas montrer une exception sur la fenêtre de sortie vs. Mais la solution temporaire peut m'aider à ignorer l'un de l'ooleil filtream pour ce sprint. Caractériscient, il n'y a pas de temps pour changer la structure de la classe pour ce sprint de projet.
Si vous voulez simplement contourner cette exception, ajoutez Essayez {// Ouvrir un fichier} Catch (FilenoffoundException) {// Faire ce que vous voulez}
Pourquoi diriez-vous de l'entourer avec une prise d'essai et gérer l'exception?
" J'ai essayé d'exserver le contrôle i>" ... Qu'avez-vous essayé? Des exceptions doivent vraiment être utilisées pour la manipulation des erreurs, sans contrôler le flux de programme - si vous vous attendez à ce que le fichier n'existe peut pas exister, vous devriez vérifier son existence, ni aucun manque de manière appropriée.
Qu'est-ce que vous signifie i> en contournant l'exception? Vous voulez que ce soit prétendre i> il a trouvé le fichier et évoque son contenu de l'air mince?
J'ai essayé d'attraper une exception avec FilenotfoundException. Mais cela écrit toujours sur la fenêtre de sortie pendant que mon projet est compilé. Comme, @piotrwojsa
Ne pas avaler des exceptions,
En fait, j'ai déjà attrapé l'erreur. Je ne veux pas voir ces erreurs tout le temps (exception projetée: 'system.io.filenotfoundexception' in mscorlib.dll) sur la fenêtre de sortie Visual Studio 2017 '.
Ensuite, vérifiez si le fichier existe avant d'essayer d'y accéder - si cela n'existe pas, n'essayez pas de le lire, aucune exception n'est lancée.
@Diado - Cela pourrait toujours être lancé, aucun moyen de faire ce coffre-fort. Mais toujours la bonne réponse, pour une fiabilité totale faire les deux.
@Devist - Je ne sais pas ce que vous voulez réellement. Décrivez le flux réel (résultat attendu) mieux. Voir une exception dans la fenêtre de sortie VS n'est pas un problème du tout.
@Devist Signaler une demande de fonctionnalité dans l'arriéré Visual Studio,