Personnellement, j'aime assert déclaration.
Mais dans ce contexte, je préfère Try-Catch pour les problèmes complexes et if-else pour les problèmes plus simples.
Si-sinon (s) ne sont pas lisibles et maintenables là où ils sont nombreux, en particulier pour les problèmes complexes. C'est pourquoi try-catch vient à la rescousse. En supposant que l'entrée donnée est correcte, traitons-la. Lorsque dans certaines lignes l'entrée donnée s'est avérée incorrecte, il suffit d'aller au bloc catch et retourne une valeur par défaut.
Il est soutenu que try-catch est plus lent. Eh bien, c'est vrai. Mais combien plus lent? 0,1 ms? 1 ms? Je vais sacrifier ces milisecondes pour la lisibilité et la maintenabilité.
Après tout, en programmation, il existe des conditions préalables pour chaque fonction/procédure. Nous savons tous ce que la précondition signifie. La meilleure façon (mon opinion personnelle) est d'affirmer que tous les paramètres correspondent à toutes les conditions préalables. De cette façon, nous pouvons supposer que l'entrée donnée est toujours correcte puisque les partenaires dans un autre étage le garantissent déjà.