English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Wie kann man in Java eine benutzerdefinierte Nachricht anstatt eines ErrorStackTrace ausgeben?

Ausnahmen sind Probleme, die während der Ausführung des Programms auftreten (Laufzeitfehler). Wenn eine Ausnahme auftritt, wird das Programm plötzlich beendet und der Code nach der Zeile, in der die Ausnahme aufgetreten ist, wird nie ausgeführt.

Ausnahme-Nachricht ausgeben

Sie können eine der folgenden Methoden, die von der Klasse Throwable abgeleitet sind, in Java verwenden, um eine Ausnahme-Nachricht auszugeben.

  • printStackTrace() -Diese Methode gibt den Stack Trace auf die Standardfehlerausgabe aus.

  • getMessage() -Diese Methode gibt eine detaillierte Nachrichtenzeichenkette des aktuellen auswurfbaren Objekts zurück.

  • toString() -Diese Nachricht zeigt eine kurze Beschreibung des aktuellen auswurfbaren Objekts an.

Beispiel

import java.util.Scanner;
public class PrintingExceptionMessage {
   public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Geben Sie die erste Zahl ein:");
      int a = sc.nextInt();
      System.out.println("Geben Sie die zweite Zahl ein:");
      int b = sc.nextInt();
      try {
         int c = a/b;
         c);+catch(ArithmeticException e) {
      }
         System.out.println("Ausgabe der Methode printStackTrace(): ");
         e.printStackTrace();
         System.out.println(" ");
         System.out.println("Ausgabe der getMessage()-Methode: ");
         System.out.println(e.getMessage());
         System.out.println(" ");
         System.out.println("Ausgabe der toString()-Methode: ");
         System.out.println(e.toString());
      }
   }
}

Ausgabeergebnis

Geben Sie die erste Zahl ein:
10
Geben Sie die zweite Zahl ein:
0
Ausgabe der printStackTrace()-Methode:
java.lang.ArithmeticException: / von zero
Ausgabe der getMessage()-Methode:
/ von zero
Ausgabe der toString()-Methode:
java.lang.ArithmeticException: / von zero
at PrintingExceptionMessage.main(PrintingExceptionMessage.java:11)

Drucken Sie eine benutzerdefinierte Ausnahmemeldung aus

Wiederholen Sie den Ausnahmezustand-Sie können eine Ausnahme neu werfen, die in einem catch-Block erfasst wurde, indem Sie das erfasste Ausnahmeobjekt zusammen mit einem String, der die Nachricht darstellt, übergeben und die übergebene Nachricht anzeigt. Beim Ausführen dieser Aktion müssen Sie das erfasste Ausnahmeobjekt und den String, der die Nachricht darstellt, übergeben und die übergebene Nachricht anzeigen.

Beispiel

import java.util.Scanner;
public class PrintingExceptionMessage {
   public static void main(String args[]) throws Exception {}}
      String msg = "Dies ist meine benutzerdefinierte Nachricht";
      Scanner sc = new Scanner(System.in);
      System.out.println("Geben Sie die erste Zahl ein:");
      int a = sc.nextInt();
      System.out.println("Geben Sie die zweite Zahl ein:");
      int b = sc.nextInt();
      try {
         int c = a/b;
         c);+catch(ArithmeticException e) {
      }
         throw new Exception("CoustomMessage: "));+msg, e);
      }
   }
}

Ausgabeergebnis

Geben Sie die erste Zahl ein:
25
Geben Sie die zweite Zahl ein:
0
Exception im Thread "main" java.lang.Exception: CoustomMessage: Dies ist meine benutzerdefinierte Nachricht
at july_set3.PrintingExceptionMessage.main(PrintingExceptionMessage.java:)16)
Ursache: java.lang.ArithmeticException: / von zero
at july_set3.PrintingExceptionMessage.main(PrintingExceptionMessage.java:)13)

Erstellen Sie eine benutzerdefinierte Ausnahme-Sie können eine benutzerdefinierte Ausnahme erstellen und erneut werfen, indem Sie die erforderliche Nachricht verwenden.

Beispiel

import java.util.Scanner;
class MyException extends Exception{
   public MyException(String msg){
      super(msg);
   }
}
public class PrintingExceptionMessage {
   public static void main(String args[]) throws Exception {}}
      String msg = "Das ist meine benutzerdefinierte Ausnahme";
      Scanner sc = new Scanner(System.in);
      System.out.println("Geben Sie die erste Zahl ein:");
      int a = sc.nextInt();
      System.out.println("Geben Sie die zweite Zahl ein:");
      int b = sc.nextInt();
      try {
         int c = a/b;
         c);+catch(ArithmeticException e) {
      }
         MyException exce = new MyException(msg);
         throw exce;
      }
   }
}

Ausgabeergebnis

Geben Sie die erste Zahl ein:
14
Geben Sie die zweite Zahl ein:
0
Exception in thread "main" july_set3.MyException: Das ist meine benutzerdefinierte Ausnahme
   at july_set3.PrintingExceptionMessage.main(PrintingExceptionMessage.java:)23)