Beaucoup de développeurs disent seulement jeter des exceptions dans des circonstances vraiment exceptionnelles. L'un d'entre eux serait si un disque dur externe que je veux écrire n'est pas allumé (donc pas un lecteur connecté/enregistré). Cependant, certaines situations sont difficiles à déterminer, qu'elles soient vraiment exceptionnelles ou non.Comment faire la distinction entre des circonstances vraiment exceptionnelles et une mauvaise condition de routine?
Par exemple, en entrant une chaîne pour un chemin de dossier mais il n'est pas trouvé. Dans ce cas, s'il y a une entrée qui ne peut pas être trouvée (comme un nom dans une collection qui n'est pas trouvée), est-il préférable de simplement retourner un message d'erreur et une action?
E.G.
public void Find(string name)
{
if(Names.contains(name)
{
string s = Names.get(name);
}
if(!Names.contains(string name)
{
throw new ???Exception;
}
}
Ou faire quelque chose comme afficher un popup et gérer la situation avec élégance?
Est-il judicieux de lancer une exception dans une instruction else ou if? Regarder une liste d'odeurs de code concernant la gestion des exceptions me ferait beaucoup de faveurs.