174 votes

Comment créer un type personnalisé des exceptions en Java ?

<blockquote> <p><strong>Doublon possible :</strong><br> <a href="http://stackoverflow.com/questions/1070590/how-can-i-write-an-exception-by-myself">Comment puis-je écrire une Exception par moi-même ?</a> </p> <p>Je voudrais créer une exception personnalisée en Java, comment puis-je le faire ?</p><pre><code></code></pre><p>quand créer mon exception personnalisée avec <code></code> j’obtiens l’erreur <code></code></p></blockquote>

254voto

Rion Williams Points 22784

Vous devriez être en mesure de créer une classe d’exception personnalisée qui étend la `` classe, par exemple :

Utilisation :

121voto

Laf Points 3086

Vous devez créer une classe qui étend la classe de Exception. Il devrait ressembler à ceci:

public class MyOwnException extends Exception {
    public MyOwnException () {

    }

    public MyOwnException (String message) {
        super (message);
    }

    public MyOwnException (Throwable cause) {
        super (cause);
    }

    public MyOwnException (String message, Throwable cause) {
        super (message, cause);
    }
}

Votre question ne précise pas si cette nouvelle exception doit être cochée ou décochée.

Comme vous pouvez le voir ici, les deux types sont différents:

  • Checked exceptions sont destinés à signaler une situation problématique qui doit être gérée par le développeur qui appelle la méthode. Il devrait être possible de récupérer à partir d'une telle exception. Un bon exemple de ceci est une FileNotFoundException. Ces exceptions sont des sous-classes d' Exception.

  • Décochée exceptions sont censées représenter un bug dans votre code, une situation inattendue que vous pourriez ne pas être en mesure de récupérer à partir. Une NullPointerException est un exemple classique. Ces exceptions sont des sous-classes de RuntimeException

Vérifié exception doivent être traitées par la méthode d'appel, soit par l'attraper et agir en conséquence, ou en les jetant à la méthode appelante. Décoché les exceptions ne sont pas destinés à être pris, même s'il est possible de le faire.

17voto

Feisty Mango Points 7113

Grandes réponses sur la création de classes d’exceptions personnalisées. Si vous souhaitez réutiliser l’exception en question puis je suivrais les réponses/conseils. Toutefois, si vous n’avez besoin que d’une rapide exception levée avec un message puis vous pouvez utiliser la classe de base exception sur place

12voto

emory Points 6319

Comme vous pouvez simplement créer et lancer des exceptions, cela pourrait être aussi simple que

 if ( word . contains ( " " ) )
{
     throw new RuntimeExcepton ( "Word contains one ore more spaces" ) ;
}
 

SI vous voulez être plus formel, vous pouvez créer une classe d'exception

 class SpaceyWordException extends RuntimeException
{
}
 

Dans les deux cas, si vous utilisez RuntimeException , votre nouveau Exception sera décoché.

12voto

Joop Eggen Points 30166

En tant que programmeur prudent souvent jeter une exception pour un événement particulier, il convient de mentionner quelques exceptions à usage général comme IllegalArgumentException et IllegalStateException et UnsupportedOperationException. IllegalArgumentException est ma préférée: lancez une nouvelle IllegalArgumentException ("Word contient vide:" + mot);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X