j'ai la plus nette impression qu'on devrait utiliser les exceptions pour des cas... exceptionnels, genre plus de RAM, plus de disque, plus de réseau, etc... Et pas dans le cas d'un conteneur vide si qu'il soit vide est normal.
Je le crois aussi. Le find d'ocaml lance une exception quand il ne trouvais pas une valeur dans une list. C'était le seul cas de "catch". Pour moi l'exception est un moyen plus propre "de remonter jusqu'en haut", sans avoir une chaine de err à réincapsuler comme dans go (c'est simple à comprendre, mais c'est moche avec un "snr" pas top).
Pour tout ce que l'on ne peut pas gérer et qui finirait par un exit (db morte, μservice qui ne répond pas, fichier absent qui est censé être toujours là), c'est plus simple de remonter en haut du code, qui décide de faire un reset, un suicide (pour être relancer par un moniteur), ou juste un log. Bien sûr, il faut éviter de faire ça au milieu de quelques choses qui ressemblent à une transaction.
[^] # Re: Pas de fumée sans feu
Posté par Nicolas Boulay (site web personnel) . En réponse au journal De l'influence néfaste de Google sur les développeurs C++. Évalué à 9.
Je le crois aussi. Le find d'ocaml lance une exception quand il ne trouvais pas une valeur dans une list. C'était le seul cas de "catch". Pour moi l'exception est un moyen plus propre "de remonter jusqu'en haut", sans avoir une chaine de err à réincapsuler comme dans go (c'est simple à comprendre, mais c'est moche avec un "snr" pas top).
Pour tout ce que l'on ne peut pas gérer et qui finirait par un exit (db morte, μservice qui ne répond pas, fichier absent qui est censé être toujours là), c'est plus simple de remonter en haut du code, qui décide de faire un reset, un suicide (pour être relancer par un moniteur), ou juste un log. Bien sûr, il faut éviter de faire ça au milieu de quelques choses qui ressemblent à une transaction.
"La première sécurité est la liberté"