• [^] # Re: gestion des erreurs

    Posté par . En réponse à la dépêche Retour d'expérience sur Go. Évalué à 2.

    Mauvais exemple utiliser les exception pour sortir autrement qu'en erreur c'est une mauvaise idée.

    Pourquoi?

    Ce n'est pas un usage « normal » des exceptions donc ça a tendance à induire en erreur. Utilisé comme ça c'est chercher à réinventer un goto avec un mécanisme plus sophistiqué et qui n'est pas prévu pour. De ce que j'en sais les exceptions sont assez lourdes que ce soit en C++ ou en Java (bien sûr en relatif), les utiliser comme comportement par défaut n'est donc pas une bonne idée. Tu as aussi de bonne chance de noyer ton traitement « normal » dans tes traitement d'erreur : un catch parmi les autres est le bon. Bien sur je présume que c'est le premier mais ce n'est pas vraiment distinguable. Tu risque fort d'avoir à faire de la gestion d'erreur dans ton catch qui n'est pas une erreur tu es donc repartis pour :

    try {
     machin;
    } catch (Resultat &r) {
     try {
     /* tout se passe bien */
     } catch (...) {
     /* Erreur */
     }
    } catch (...) {
     /* Erreur */
    }
    
    

    ou alors pour éviter la duplication des traitements d'erreur :

    try {
     try {
     machin;
     } catch (Resultat &r) {
     /* tout se passe bien */
     }
    } catch (...) {
     /* Erreur */
    }
    
    

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)