Quelles sont vos meilleures pratiques pour la gestion des exceptions C ++?

J'ai cherché sur Internet et trouvé beaucoup d'articles sur ce sujet. Cependant, j'ai trouvé il n'y a pas de remplir la liste de vérification pour vérifier notre code de qualité de l'exception de sécurité.

Donc, je tiens à recueillir de précieuses les meilleures pratiques pour la gestion des exceptions C++ à partir de vous.

J'ai d'abord la liste de certaines pratiques qui sont les miens:

  1. Attraper toutes les exceptions si une destructeurs:
    struct A
    {
        ~A()
        {
            try
            {
                //Here may throw exceptions
            }
            catch (std::runtime_error& e)
            {}
            catch (...)
            {
                logging("...");
            }
        }
    };
  2. Ajouter le nom de la fonction, le nom du fichier source et la ligne r à l'exception de l'information. __func____FILE__ et __LINE__ sont de bons amis.
  3. N'utilisez jamais d'exception cahier des charges. La raison en est donnée dans le livre "C++ Normes de Codage".

Quels sont les vôtres?

source d'informationauteur xmllmx