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); } }
4 Réponses :
Il suffit d'appeler le constructeur de classe de base: p>
Exception (String Message) Code>
Construit une nouvelle exception avec le message de détail spécifié. P> blockQuote>
L'utilisation de Super est d'appeler le constructeur de la classe Super (base, parent) qui se trouve être la Exception Code> Classe P>
É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 Dans le cas des exceptions personnalisées, il est courant d'utiliser Super code> 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 code> pour transmettre les paramètres souhaités et appeler le constructeur correct. P>
Super code> 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. P>
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 () code> 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 code>? J'ai une classe d'exception personnalisée mais je ne pouvais pas le jeter à partir d'un
Jni code>
C ++ code> Passer le code d'erreur
int code> Code d'erreur. Mais au lieu de cela, je suis obligé de servir à plutôt d'utiliser une chaîne code> code> car la classe d'exception dispose d'un constructeur qui accepte une chaîne.
Parce que:
public MyException(String message) { //super() implicit call, how to set message??? }
C'est d'appeler le constructeur de Super non par défaut.