Je suis récemment tombé sur un code écrit par un collègue programmeur dans lequel il avait une instruction try catch dans un catch!Gestion des exceptions try catch catch inside
S'il vous plaît pardonnez mon incapacité à coller le code réel, mais ce qu'il a fait était quelque chose de semblable à ce
try
{
//ABC Operation
}
catch (ArgumentException ae)
{
try
{
//XYZ Operation
}
catch (IndexOutOfRangeException ioe)
{
//Something
}
}
Je me sens personnellement qu'il est l'un des plus pauvres du code que j'ai jamais vu! Sur une échelle de 1 à 10 ... dans combien de temps pensez-vous que je devrais y aller et lui donner une partie de mon esprit? Ou est-ce que je réagis trop?
EDIT: Ce qu'il fait en réalité, c'est que dans la capture, il effectue d'autres opérations qui peuvent/devraient être faites lorsque l'essai initial échoue. Mon problème est d'avoir un code propre et une maintenabilité. Déléguer l'exception de la première capture à une fonction différente ou à la fonction d'appel serait OK, mais en ajoutant plus de code qui peut ou non lancer une exception dans la première capture, c'est ce que je trouvais mauvais. J'essaie d'éviter plusieurs "if-loop" empilés, j'ai trouvé cela aussi mauvais.
- IvarD
Ceci est assez commun, donc sans voir ce que le code fait réellement - il n'y a rien intrinsèquement faux avec cela. – nos
Je préférerais lui demander ce qu'il essayait d'accomplir. –