Maison > Java > javaDidacticiel > Exceptions personnalisées en Java

Exceptions personnalisées en Java

王林
Libérer: 2023-08-24 11:41:08
avant
2099 Les gens l'ont consulté

Exceptions personnalisées en Java

Vous pouvez créer vos propres exceptions en Java, elles sont appelées exceptions définies par l'utilisateur ou exceptions personnalisées.

Pour créer des exceptions définies par l'utilisateur, étendez l'une des classes ci-dessus. Pour afficher un message, remplacez la méthode toString() ou appelez le constructeur paramétré de la superclasse en contournant le message au format chaîne.

MyException(String msg){
   super(msg);
}
Or,
public String toString(){
   return " MyException [Message of your exception]";
}
Copier après la connexion

Ensuite, dans l'autre classe qui doit lever cette exception, créez un objet de la classe d'exception personnalisée que vous avez créée et lancez l'exception à l'aide du mot-clé throw.

MyException ex = new MyException ();
If(condition……….){
   throw ex;
}
Copier après la connexion

Exceptions personnalisées vérifiées et exceptions personnalisées non vérifiées

  • Toutes les exceptions doivent être des sous-classes de Throwable.

  • Si vous souhaitez écrire une exception vérifiée qui est automatiquement appliquée par une règle Handle ou Declare, vous devez étendre la classe Exception.

  • Si vous souhaitez écrire une exception d'exécution, vous devez étendre la classe RuntimeException.

Exemple : Exception vérifiée personnalisée

Le programme Java suivant montre comment créer une exception vérifiée personnalisée.

Démonstration en ligne

import java.util.Scanner;
class NotProperNameException extends Exception {
   NotProperNameException(String msg){
      super(msg);
   }
}
public class CustomCheckedException {
   private String name;
   private int age;
   public static boolean containsAlphabet(String name) {
      for (int i = 0; i < name.length(); i++) {
         char ch = name.charAt(i);
         if (!(ch >= &#39;a&#39; && ch <= &#39;z&#39;)) {
            return false;
         }
      }
      return true;
   }
   public CustomCheckedException(String name, int age){
      if(!containsAlphabet(name)&&name!=null) {
         String msg = "Improper name (Should contain only characters between a to z (all small))";
         NotProperNameException exName = new NotProperNameException(msg);
         throw exName;
      }
      this.name = name;
      this.age = age;
   }
   public void display(){
      System.out.println("Name of the Student: "+this.name );
      System.out.println("Age of the Student: "+this.age );
   }
   public static void main(String args[]) {
      Scanner sc= new Scanner(System.in);
      System.out.println("Enter the name of the person: ");
      String name = sc.next();
      System.out.println("Enter the age of the person: ");
      int age = sc.nextInt();
      CustomCheckedException obj = new CustomCheckedException(name, age);
      obj.display();
   }
}
Copier après la connexion

Exception au moment de la compilation

Lors de la compilation, le programme ci-dessus générera l'exception suivante.

CustomCheckedException.java:24: error: unreported exception NotProperNameException; must be caught or declared to be thrown
   throw exName;
   ^
1 error
Copier après la connexion

Exemple : exception personnalisée non vérifiée

Si vous modifiez simplement la classe dont hérite votre exception personnalisée en RuntimeException, elle sera lancée au moment de l'exécution

class NotProperNameException extends RuntimeException {
   NotProperNameException(String msg){
      super(msg);
   }
}
Copier après la connexion

Si vous exécutez le programme ci-dessus, remplacez la classe NotProperNameException par le code ci-dessus et exécutez-le, l'exception d'exécution suivante sera générée.

Exception d'exécution

Enter the name of the person:
Krishna1234
Enter the age of the person:
20
Exception in thread "main" july_set3.NotProperNameException: Improper name (Should contain only characters between a to z (all small))
   at july_set3.CustomCheckedException.<init>(CustomCheckedException.java:25)
   at july_set3.CustomCheckedException.main(CustomCheckedException.java:41)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal