Quand utiliser la fonction assert() et quand utiliser try catch?
Dans quelles situations avez-vous les utiliser?
Vous devez vous connecter pour publier un commentaire.
Dans quelles situations avez-vous les utiliser?
Vous devez vous connecter pour publier un commentaire.
Try... catch - pour des conditions exceptionnelles, c'est à dire des conditions qui ne sont pas causées par la malformation de code, mais qui peut simplement modifier la normale de flux de contrôle externe par des événements imprévisibles.
Assertions pour la capture de code non valide, c'est à dire de vérifier si un invariant est tenue à la fonction, de vérifier si une méthode interne est appelé avec de bons arguments (pour les API, vous pourriez tout de même une exception pour ça), etc.
Ce sont mes lignes directrices de base, mais les conventions varient d'une situation à l'autre et d'une langue à l'autre.
Lorsque vous êtes dans le doute, vous pouvez vous demander: à des vérifications de sécurité censé être encore là dans le code de libération, après nous tester et de terminer tout? Si vous répondez "oui, il est toujours nécessaire ensuite", vous voulez sans doute une exception. Sinon, vous voulez probablement une assertion.
Normalement
assert()
ne fonctionne pas dans la version du code, de sorte qu'il ne peut jamais remplacer untry-catch
stratégie. Néanmoins, je tiens à utiliserassert()
dans des endroits où des exceptions sont levées. Pour moi (en tant que développeur!), il est souvent plus pratique pour se rendre par unassert()
message à la ligne de l'échec que par le biais de la pile d'exception.Ils sont créés à des fins différentes.
Assert
est plus pour trouver des bugs,try-catch
est pour faire face aux situations exceptionnelles.Les situations de try-catch et de faire valoir sont totalement différentes.
Affirmer est utilisée pour vérifier si la valeur que vous avez reçu, en tant que paramètre par exemple, est prévu. Je recommande de ne pas utiliser assert dans le code de production, il est utilisé dans des tests unitaires surtout et rarement pour vérifier les paramètres.
Pour vérifier les valeurs passées de mieux utiliser quelque chose comme:
Bloc Try-catch est utilisé lorsque vous savez quelque chose à l'intérieur du bloc qui peut aller mal. Par exemple, vous écrivez à une sdcard et il n'y a pas d'espace pour l'écriture. Ou, il est arrivé que vous essayez de lire le tableau en sortir des limites. Ensuite, vous mettez votre code dans le bloc try-catch et de vérifier pour la excpetions:
Plus sur les exceptions et les blocs try-catch.