- Comment puis-je écrire une exception par moi-même? (4 réponses )
Réponses
Trop de publicités?Vous devriez être en mesure de créer une classe d’exception personnalisée qui étend la `` classe, par exemple :
Utilisation :
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.
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
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é.
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);