In diesem Abschnitt werden wir lernen So drucken Sie Ausnahmemeldungen in Java durch den Einsatz verschiedener Methoden der Java Throwable Klasse . Die Throwable-Klasse bietet die folgenden drei Methoden zum Drucken der Ausnahmemeldung:
- Verwenden der printStackTrace-Methode
- Verwendung der getMessage()-Methode
- Verwendung der toString()-Methode
Lassen Sie uns dies einzeln im Detail besprechen.
Verwenden der Methode printStackTrace()
Der printStackTrace() Methode ist in der definiert Wurfbar Klasse, die zum Paket java.lang gehört. Die Methode druckt die Name, Beschreibung (wie zum Beispiel / durch Null ), und das Stapelverfolgung (Zeilennummer und Klassenname, in der die Ausnahme ausgelöst wurde) einer Ausnahme. Der Stack-Trace verfolgt, wo die nächste Ausnahme auftritt. Es wird häufig zum Drucken der Ausnahmemeldung verwendet.
Es gibt drei Versionen der printStackTrace()-Methode:
Shilpa Shetty Alter
Syntax | Beschreibung |
---|---|
printStackTrace() | Die Methode gibt dieses Throwable und seinen Backtrace zum Standardfehlerstrom aus. |
public void printStackTrace(PrintStream s) | Die Methode gibt throwable und ihren Backtrace auf den angegebenen Druckstream aus. |
public void printStackTrace(PrintWriter s) | Die Methode gibt throwable und ihren Backtrace auf den angegebenen Druckschreiber aus. |
Um das Konzept der printStackTrace()-Methode zu verstehen, erstellen wir zunächst eine Java Programm, das eine Division durch Null-Ausnahme ausgelöst hat. In diesem Programm verwenden wir nicht die Methode printStackTrace() zum Drucken der Ausnahme.
PrintExceptionMessage1.java
public class PrintExceptionMessage1 { //user defined method public static void divide() { try { //raised divide by zero exception int a = 100/0; } catch (Exception e) { //prints exception message System.out.println(e); } } //main() method public static void main(String args[]) { //calling user defined method divide(); } }
Wenn wir das obige Programm ausführen, erhalten wir eine Arithmetische Ausnahme und die folgende Meldung wird auf der Konsole gedruckt:
In der obigen Nachricht können wir nicht angeben, welche Zeile eine Ausnahme auslöst. Daher ist es schwierig herauszufinden, wo Ausnahmen auftreten. Um dieses Problem zu lösen, verwenden wir die Methode printStackTrace(). Lassen Sie uns die Methode printStackTrace() in einem Java-Programm verwenden.
PrintExceptionMessage2.java
public class ExceptionExample2 { //user defined method public static void divide() { try { //raised divide by zero exception int a = 100/0; } catch (Exception e) { //prints exception message and detail of the exception e.printStackTrace(); } } //main() method public static void main(String args[]) { //calling user defined method divide(); } }
Lassen Sie uns das obige Programm ausführen.
Die obige Ausnahmemeldung zeigt deutlich, welche Methode eine Ausnahme ausgelöst hat, um welchen Ausnahmetyp es sich handelt und welche Zeile eine Ausnahme auslöst.
Die erste Zeile der Nachricht zeigt, dass das Programm a auslöst java.lang.ArithmeticException (geteilt durch Null). Die zweite Zeile zeigt, dass in Zeile Ausnahmen auftreten 9 und die Methode Divide() löst eine Ausnahme aus. Die dritte Zeile zeigt diese Ausnahme in Zeile einundzwanzig . Die main()-Methode löst auch eine Ausnahme aus, da die Divide()-Methode innerhalb der main()-Methode aufgerufen wird. Daher ist die Verwendung der printStackTrace() Methode können wir leicht darauf hinweisen genaue Position der Ausnahme.
Verwendung der getMessage()-Methode
Der getMessage() Methode ist auch in der definiert Wurfbar Klasse, die zum Paket java.lang gehört. Die Methode gibt nur die Meldung einer Ausnahme aus. Es gibt weder den Namen der Ausnahme noch die Beschreibung aus. Es wird häufig zum Drucken der Ausnahmemeldung verwendet.
Syntax:
public String getMessage();
Es gibt die detaillierte Nachrichtenzeichenfolge dieser Throwable-Instanz zurück. Es kann null sein.
Lassen Sie uns die Methode getMessage() in einem Java-Programm verwenden.
binärer Suchalgorithmus
PrintExceptionMesssage3.java
public class PrintExceptionMessage3 { public static void main(String args[]) { try { int a = 100/0; } catch (Exception e) { //prints only the message of the exception System.out.println(e.getMessage()); //use the following statement if you want to print name of the exception and which exception thrown //System.out.println(e); } } }
Lassen Sie uns das obige Programm ausführen.
Wir stellen fest, dass nur die Ausnahme gedruckt wird. Daher wird es nicht häufig verwendet, da es keine detaillierte Beschreibung einer Ausnahme ausgibt.
Verwendung der toString()-Methode
Der toString() Methode der Wurfbar Klasse überschreibt die toString() Methode der Object-Klasse. Es gibt die kurze Beschreibung einer Ausnahme aus. Die anderen Informationen (z. B. Ausnahmename und Stack-Trace) werden nicht angezeigt. Es wird nicht häufig zum Drucken der Ausnahmemeldung verwendet.
Lassen Sie uns die toString()-Methode in einem Java-Programm verwenden.
PrintExceptionMessage4.java
auswählen als
public class PrintExceptionMessage4 { public static void main(String args[]) { try { int a = 100/0; } catch (Exception e) { //we can use either of the statement to print the exception message //both prints the same message System.out.println(e.toString()); //System.out.println(e); } } }
Lassen Sie uns das obige Programm ausführen.
In der obigen Meldung stellen wir fest, dass nur der Name und der Typ der Ausnahme ausgegeben werden. Es wird nicht darauf hingewiesen, in welcher Zeile eine Ausnahme aufgetreten ist.
Wir haben die verschiedenen Möglichkeiten zum Drucken der Ausnahmemeldung in Java kennengelernt. Wir empfehlen Ihnen, die zu verwenden printStackTrace() -Methode, da sie auf den Ort verweist, an dem eine Ausnahme auftritt.