Je suis sûr que je connais déjà la réponse, mais je suis toujours curieux de savoir quelle est l'opinion sur la gestion d'une erreur dans un bloc Try, Catch, Finally - mais quand vous vous répétez.Throw Exception VS Return Erreur dans un Try, Catch, Enfin
BTW - Je ne parle pas de l'entrée utilisateur - mais en utilisant que pour un exemple parce qu'il est clair et court
ce bit de Tenir compte code ...
try {
if (success) {
return someSuccessMessage;
}
else {
logError("User input not correct format");
return someErrorMessage; // repeats itself
}
}
catch (Exception ex) {
logError(ex.Message);
return someErrorMessage; // repeats itself
}
Say nous avons une fonction qui, si elle échoue, nous voulons retourner un message d'erreur parce que l'exception n'est pas pertinente - notre fonction n'a pas fonctionné et l'utilisateur n'a pas besoin de détails supplémentaires. J'ai toujours eu la conviction que si vous pouvez gérer l'erreur, évitez l'exception - car ce n'est plus exceptionnel, mais je me demandais l'opinion d'éviter de vous répéter aussi ... Vous pourriez faire le ci-dessous pour éviter de vous répéter ...
try {
if (success) {
return someSuccessMessage;
}
else {
throw new Exception("User input not correct format");
}
}
catch (Exception ex) {
logError(ex.Message);
return someErrorMessage;
}
Ce n'est pas le meilleur exemple, mais j'allais par souci de concision pour faire le point de répéter le code.
Les exceptions sont connues pour subir une pénalité de performance, mais quelles sont les réflexions sur une telle situation?
Ceci est un exemple classique d'exceptions abus pour le flux de contrôle, discuté ici [Pourquoi ne pas utiliser les exceptions comme flux de contrôle régulier?] (Http://stackoverflow.com/q/729379/2444725) – Lightman