J'ai passé un entretien récemment et l'examinateur voulait que je fasse un test technique pour vérifier mes connaissances. Après l'avoir terminé, il m'a donné son avis sur la manière dont je m'en étais sorti, ce à quoi je ne m'attendais pas et que j'ai apprécié, car peu d'examinateurs le font s'ils ne veulent pas vous engager.
Il m'a dit que l'une des choses qu'il trouvait mauvaises dans mon code était que j'utilisais plus d'un bloc try-catch dans chaque méthode que j'écrivais. Cela attire mon attention car je trouve cela intéressant.
Je pense actuellement que je devrais créer des blocs try-catch dans lesquels il y a un bloc de code sémantiquement distinct qui a une ou plusieurs méthodes qui peuvent lancer des exceptions devant être attrapées. La seule exception à cette règle que j'ai suivie est que si deux méthodes lèvent le même type d'exception, je ferais mieux de les placer dans des blocs try-catch différents afin de distinguer clairement lors du débogage où et pourquoi une exception a été levée.
Cela diffère fortement de ce que l'interviewer voulait que je fasse. L'utilisation d'un seul bloc try-catch par méthode est-elle une bonne pratique connue ? S'il s'agit d'une bonne pratique connue, quels en sont les avantages ?
EDIT : J'apprécie grandement vos réflexions à ce sujet, c'est très bien. Mais notez bien que je demande si c'est une bonne pratique connue. C'est à dire, si la plupart des programmeurs sont d'accord sur ce point, et ou si cela est écrit comme une bonne pratique dans un livre.
0 votes
Question connexe : stackoverflow.com/questions/2737328/
0 votes
J'ai posé une question similaire : Combien d'instructions dans une instruction try/catch ?
11 votes
Je suis d'accord avec votre point de vue. Les intervieweurs n'ont pas toujours raison.
0 votes
@AndrewFerrier J'ai lu les réponses et la question. Je pense que je ne demande pas la même chose si c'est ce que vous voulez dire. Je veux savoir si c'est une bonne pratique connue pour le faire. Si c'est approuvé par la plupart des programmeurs, ou si c'est écrit dans un livre renommé.
2 votes
@tbsalling Ne vous méprenez pas. Je ne dis pas que l'enquêteur a tort. C'est qu'il se peut que je manque quelque chose que je ne connais pas.
1 votes
Je pense que vous devriez utiliser des blocs try/catch différents lorsque le comportement est différent. Si ce qui se trouve dans le catch est le même dans les deux blocs, je n'en utiliserais qu'un seul. Cela soulève bien sûr la question de savoir s'il y a plus d'un bloc try/catch, car le code est distinct, tout comme la fonctionnalité catch, et s'il doit être divisé en plusieurs méthodes.
4 votes
Le problème avec de nombreux
try
Les déclarations de méthode peuvent être dues au fait que vos méthodes sont trop longues ou que vous comptez trop sur les exceptions. Si ce n'est pas le cas, alors je ne vois pas son opinion comme étant justifiée.0 votes
Voir ma réponse dans l'EDIT de ma réponse... Puis-je vous demander, sans vous offenser, s'il s'agissait d'un entretien dans une entreprise de services ou de produits ?
1 votes
C'est un problème assez mineur de toute façon. Si c'est la critique qu'il a formulée, il semble que vous vous soyez bien débrouillée lors de l'entretien :)
3 votes
Peut-être que l'interviewer voulait voir comment vous réagiriez aux critiques dans le cadre d'une revue de code ?
0 votes
C'est intéressant Alvin, mais je ne pense pas que c'était le cadre parfait dans mon cas, pour qu'il le fasse, puisque le test technique a été envoyé à mon email et que je l'ai ensuite fait chez moi. La réponse a été envoyée dans un e-mail également. Et je n'y ai pas répondu car je ne savais pas quoi dire et penser. C'est aussi la première fois que je fais un test de ce genre.