9
votes

Super appel dans une exception personnalisée

Je veux juste savoir pourquoi nous appelons super dans une exception personnalisée créée propre.

public class MyException extends Exception 
{ 
   public MyException(String message)         
  {  
    super(message);        
  }      
}


1 commentaires

C'est d'appeler le constructeur de Super non par défaut.


4 Réponses :


2
votes

Il suffit d'appeler le constructeur de classe de base:

Exception (String Message)

Construit une nouvelle exception avec le message de détail spécifié.


0 commentaires

1
votes

L'utilisation de Super est d'appeler le constructeur de la classe Super (base, parent) qui se trouve être la Exception Classe


0 commentaires

13
votes

Étant donné qu'une classe dérivée a toujours la classe de base en tant que modèle, il est nécessaire d'initialiser la classe de base comme première étape de la construction de l'objet dérivé. Par défaut, si aucun appel Super est effectué, Java utilisera un constructeur par défaut (paramètres) pour créer la classe de base. Si vous souhaitez utiliser un constructeur différent, vous devez utiliser Super pour transmettre les paramètres souhaités et appeler le constructeur correct.

Dans le cas des exceptions personnalisées, il est courant d'utiliser Super pour initialiser le message d'erreur de l'exception; En passant le message dans le constructeur de la classe de base, la classe de base s'occupera du travail de la définition correctement.


3 commentaires

Si nous appelons Super Constructeur alors quelle est l'utilisation de l'exception personnalisée?


Salut @kavya. L'utilisation de l'exception personnalisée consiste à apporter des modifications par rapport à l'exception de base. Un cas d'utilisation simple modifierait le message avant de passer à la Super () appel. Cependant, vous pouvez également définir toutes les variables ou méthodes sur la classe dérivée, qu'un consommateur pourrait utiliser pour obtenir plus d'informations.


Pouvez-vous expliquer pourquoi il n'y a pas de constructeur à l'exception qui accepte un int ? J'ai une classe d'exception personnalisée mais je ne pouvais pas le jeter à partir d'un Jni C ++ Passer le code d'erreur int Code d'erreur. Mais au lieu de cela, je suis obligé de servir à plutôt d'utiliser une chaîne car la classe d'exception dispose d'un constructeur qui accepte une chaîne.



2
votes

Parce que:

public MyException(String message)         
  {  
   //super() implicit call, how to set message???

}  


0 commentaires