Mysql
 sql >> Base de données >  >> RDS >> Mysql

Quel est l'avantage d'utiliser try {} catch {} par rapport à if {} else {}

J'utiliserais le bloc try/catch lorsque le chemin normal à travers le code devrait se dérouler sans erreur, à moins qu'il n'y ait vraiment des conditions exceptionnelles - comme le serveur étant en panne, vos informations d'identification étant expirées ou incorrectes. Je ne l'utiliserais pas nécessairement pour gérer des erreurs non exceptionnelles - disons que l'utilisateur actuel n'est pas dans le bon rôle. Autrement dit, lorsque vous pouvez raisonnablement vous attendre et gérer une erreur qui n'est pas une condition exceptionnelle, je pense que vous devriez faire vos vérifications.

Dans le cas que vous avez décrit - configuration et exécution d'une requête, un bloc try/catch est un excellent moyen de le gérer car vous vous attendez normalement à ce que la requête réussisse. D'un autre côté, vous souhaiterez probablement vérifier que le contenu du résultat correspond à ce que vous attendez avec la logique de flux de contrôle plutôt que d'essayer simplement d'utiliser des données qui peuvent ne pas être valides pour votre objectif.

Une chose que vous voulez surveiller est l'utilisation bâclée de try/catch. Try/catch ne doit pas être utilisé pour vous protéger d'une mauvaise programmation -- le genre "Je ne sais pas ce qui se passera si je fais ça donc je vais l'envelopper dans un try/catch et espérer le meilleur" de programmation. En règle générale, vous souhaiterez limiter les types d'exceptions que vous interceptez à celles qui ne sont pas liées au code lui-même (serveur en panne, mauvaises informations d'identification, etc.) afin que vous puissiez trouver et corriger les erreurs liées au code (pointeurs nuls, etc. .).