Considérant que vous avez un code comme celui-ci :
doSomething() // this method may throw a checked a exception
//do some assignements calculations
doAnotherThing() //this method may also throw the same type of checked exception
//more calls to methods and calculations, all throwing the same kind of exceptions.
Je sais maintenant qu'il y a en fait un impact sur les performances lors de la construction de l'exception, en particulier lors du déroulement de la pile. J'ai également lu plusieurs articles faisant état d'une légère baisse des performances lors de l'entrée dans les blocs try/catch, mais aucun de ces articles ne semble conclure quoi que ce soit.
Ma question est la suivante : est-il recommandé de limiter les lignes à l'intérieur de la clause try catch au strict minimum ? c'est-à-dire de n'avoir à l'intérieur de la clause try que les lignes qui peuvent effectivement lancer l'exception que vous attrapez. Le code à l'intérieur de la clause try s'exécute-t-il plus lentement ou entraîne-t-il une baisse des performances ?
Mais le plus important, c'est que c'est la meilleure pratique/la solution la plus lisible pour faire cela :
try {
doSomething() // this method may throw a checked a exception
//do some assignements calculations
doAnotherThing() //this method may also throw the same type of checked exception
//more calls to methods and calculations, all throwing the same kind of exceptions.
}
catch (MyCheckedException e) {
//handle it
}
ou :
try {
doSomething() // this method may throw a checked a exception
}
catch (MyCheckedException e) {
//Store my exception in a Map (this is all running in a loop and I want it to continue running, but I also want to know which loops didn't complete and why)
continue;
}
//do some assignements calculations
try {
doAnotherThing() // this method may throw a checked a exception
}
catch (MyCheckedException e) {
//Store my exception in a Map (this is all running in a loop and I want it to continue running, but I also want to know which loops didn't complete and why)
continue;
}
Ceci en considérant que vous traiterez TOUTES ces exceptions vérifiées exactement de la même manière bien sûr.