std:: domain_error
| 
           
           Défini dans l'en-tête
            
         
            
             <stdexcept>
            
           
           | 
         ||
| 
           
           
            
             class
            
            domain_error
            
             ;
            
           
           
          | 
         ||
Définit un type d'objet à lancer comme exception. Il peut être utilisé par l'implémentation pour signaler des erreurs de domaine, c'est-à-dire des situations où les entrées sont en dehors du domaine sur lequel une opération est définie.
       Les composants de la bibliothèque standard ne lancent pas cette exception (les fonctions mathématiques signalent les erreurs de domaine comme spécifié dans
       
        
         math_errhandling
        
       
       ). Cependant, les bibliothèques tierces utilisent ceci. Par exemple,
       
        boost.math
       
       lance
       
        std::domain_error
       
       si
       
        boost::math::policies::throw_on_error
       
       est activé (paramètre par défaut).
      
         Toutes les fonctions membres de
         
          std::domain_error
         
         sont
         
          
           constexpr
          
         
         : il est possible de créer et d'utiliser des objets
         
          std::domain_error
         
         lors de l'évaluation d'une expression constante.
         
          Cependant, les objets
            | 
        (depuis C++26) | 
Diagramme d'héritage
         Table des matières | 
       
Fonctions membres
| 
          
           
            
             (constructeur)
            
           
           
          | 
        
         construit un nouvel objet
         
          domain_error
         
         avec le message donné
         (fonction membre publique)  | 
       
| 
          
           
            
             operator=
            
           
           
          | 
        
         remplace l'objet
         
          domain_error
         
         (fonction membre publique)  | 
       
std::domain_error:: domain_error
| 
            
            
             domain_error
             
              (
             
             
              const
             
             
              
               std::
               
                string
               
              
             
             
              &
             
             what_arg
             
              )
             
             
              ;
             
            
            
           | 
          (1) | (constexpr depuis C++26) | 
| 
            
            
             domain_error
             
              (
             
             
              const
             
             
              char
             
             
              *
             
             what_arg
             
              )
             
             
              ;
             
            
            
           | 
          (2) | (constexpr depuis C++26) | 
| 
            
            
             domain_error
             
              (
             
             
              const
             
             domain_error
             
              &
             
             other
             
              )
             
             
              ;
             
            
            
           | 
          (3) | 
           
            (noexcept depuis C++11)
           
            (constexpr depuis C++26)  | 
         
         std::domain_error
        
        alors
        
         
          
           
            std::
            
             strcmp
            
           
          
          
           (
          
          what
          
           (
          
          
           )
          
          , other.
          
           what
          
          
           (
          
          
           )
          
          
           )
          
          
           ==
          
          
           0
          
         
        
        . Aucune exception ne peut être levée depuis le constructeur de copie.
       Paramètres
| what_arg | - | chaîne explicative | 
| other | - | autre objet d'exception à copier | 
Exceptions
Notes
        Comme la copie de
        
         std::domain_error
        
        n'est pas autorisée à lever des exceptions, ce message est généralement stocké en interne sous forme de chaîne à comptage de référence allouée séparément. C'est aussi pourquoi il n'y a pas de constructeur prenant
        
         std::string&&
        
        : il devrait de toute façon copier le contenu.
       
Avant la résolution de LWG issue 254 , le constructeur non-copie ne pouvait accepter que std::string . Cela rendait l'allocation dynamique obligatoire pour construire un objet std::string .
        Après la résolution de
        
         LWG issue 471
        
        , une classe d'exception standard dérivée doit avoir un constructeur de copie accessible publiquement. Il peut être implicitement défini tant que les chaînes explicatives obtenues par
        
         what()
        
        sont identiques pour l'objet original et l'objet copié.
       
std::domain_error:: operator=
| 
            
            
             domain_error
             
              &
             
             operator
             
              =
             
             
              (
             
             
              const
             
             domain_error
             
              &
             
             other
             
              )
             
             
              ;
             
            
            
           | 
          
           
            (noexcept depuis C++11)
           
            (constexpr depuis C++26)  | 
         |
        Assigne le contenu avec celui de
        
         
          other
         
        
        . Si
        
         
          
           *
          
          this
         
        
        et
        
         
          other
         
        
        ont tous deux le type dynamique
        
         std::domain_error
        
        alors
        
         
          
           
            std::
            
             strcmp
            
           
          
          
           (
          
          what
          
           (
          
          
           )
          
          , other.
          
           what
          
          
           (
          
          
           )
          
          
           )
          
          
           ==
          
          
           0
          
         
        
        après l'assignation. Aucune exception ne peut être levée par l'opérateur d'assignation de copie.
       
Paramètres
| other | - | un autre objet exception à assigner | 
Valeur de retour
* this
Notes
        Après la résolution de
        
         LWG issue 471
        
        , une classe d'exception standard dérivée doit avoir un opérateur d'assignation de copie accessible publiquement. Il peut être défini implicitement tant que les chaînes explicatives obtenues par
        
         what()
        
        sont les mêmes pour l'objet original et l'objet copié.
       
Hérité de std:: logic_error
Hérité de std:: exception
Fonctions membres
| 
           
            
             
              
               [virtual]
              
             
            
            
           | 
         
          détruit l'objet exception
           (fonction membre publique virtuelle de 
            std::exception
           
           )
          
          | 
        
| 
           
            
             
              
               [virtual]
              
             
            
            
           | 
         
          retourne une chaîne explicative
           (fonction membre publique virtuelle de 
            std::exception
           
           )
          
          | 
        
Notes
| Macro de test de fonctionnalité | Valeur | Std | Fonctionnalité | 
|---|---|---|---|
         
          
           __cpp_lib_constexpr_exceptions
          
         
         | 
        
         
          
           202502L
          
         
         | 
        (C++26) | constexpr types d'exception | 
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Appliqué à | Comportement publié | Comportement corrigé | 
|---|---|---|---|
| LWG 254 | C++98 | le constructeur acceptant const char * était manquant | ajouté | 
| LWG 471 | C++98 | 
         les chaînes explicatives des
          copies de 
          std::domain_error
         
         étaient définies par l'implémentation
         | 
        
         elles sont identiques à celles de
          l'objet 
          std::domain_error
         
         original
         |