logo

Różne sposoby drukowania komunikatu o wyjątku w Javie

W tej części się dowiemy jak drukować komunikaty o wyjątkach w Javie stosując różne metody Możliwość rzucania Java klasa . Klasa Throwable udostępnia trzy następujące metody drukowania komunikatu o wyjątku:

  • Korzystanie z metody printStackTrace
  • Korzystanie z metody getMessage().
  • Korzystanie z metody toString().
Różne sposoby drukowania komunikatu o wyjątku w Javie

Omówmy szczegółowo jeden po drugim.

Korzystanie z metody printStackTrace().

The printStackTrace() metoda jest zdefiniowany w Możliwość rzucania klasa należąca do pakietu java.lang. Metoda drukuje nazwa, opis (Jak na przykład / o zero ) i Ślad stosu (numer wiersza i nazwa klasy, w przypadku gdy zgłoszony został wyjątek) wyjątku. Śledzenie stosu śledzi miejsce wystąpienia następnego wyjątku. Jest szeroko stosowany do drukowania komunikatu o wyjątku.

Istnieją trzy wersje metody printStackTrace():

klasa abstrakcyjna a interfejs
Składnia Opis
printStackTrace() Metoda wypisuje ten obiekt do rzucania i jego ślad do standardowego strumienia błędów.
public void printStackTrace(PrintStream s) Metoda drukuje obiekt rzucany i jego śledzenie do określonego strumienia wydruku.
public void printStackTrace(PrintWriter s) Metoda drukuje obiekt rzucany i jego ślad do określonego modułu zapisującego wydruk.

Aby zrozumieć koncepcję metody printStackTrace(), najpierw utworzymy plik Jawa program, który podniósł wyjątek w przypadku dzielenia przez zero. W tym programie nie będziemy używać metody printStackTrace() do wydrukowania wyjątku.

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(); } } 

Kiedy uruchomimy powyższy program, otrzymamy plik wyjątek arytmetyczny a na konsoli zostanie wypisany następujący komunikat:

Różne sposoby drukowania komunikatu o wyjątku w Javie

W powyższym komunikacie nie możemy wskazać, która linia zgłasza wyjątek. Trudno więc znaleźć miejsca, w których występują wyjątki. Aby przezwyciężyć ten problem, używamy metody printStackTrace(). Użyjmy metody printStackTrace() w programie Java.

PrintExceptionMessage2.java

Strumień filtra 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(); } } 

Uruchommy powyższy program.

Różne sposoby drukowania komunikatu o wyjątku w Javie

Powyższy komunikat o wyjątku wyraźnie pokazuje, która metoda zgłosiła wyjątek, jaki jest jego typ i która linia zgłasza wyjątek.

Pierwsza linia komunikatu pokazuje, że program zgłasza plik a wyjątek java.lang.ArithmeticException (dzielony przez zero). Druga linia pokazuje, że w linii występują wyjątki 9 a metoda split() zgłasza wyjątek. Trzecia linia pokazuje ten wyjątek w linii dwadzieścia jeden . Metoda main() również zgłasza wyjątek, ponieważ metoda split() jest wywoływana wewnątrz metody main(). Dlatego korzystając z printStackTrace() metodę, możemy łatwo wskazać dokładne położenie wyjątku.

Korzystanie z metody getMessage().

The pobierz wiadomość() metoda jest również zdefiniowana w Możliwość rzucania klasa należąca do pakietu java.lang. Metoda wypisuje jedynie komunikat o wyjątku. Nie drukuje ani nazwy wyjątku, ani opisu. Jest szeroko stosowany do drukowania komunikatu o wyjątku.

Składnia:

 public String getMessage(); 

Zwraca szczegółowy ciąg komunikatu tej instancji Throwable. Może być zerowy.

Użyjmy metody getMessage() w programie Java.

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); } } } 

Uruchommy powyższy program.

Różne sposoby drukowania komunikatu o wyjątku w Javie

Zauważamy, że wypisuje tylko wyjątek. Dlatego nie jest szeroko stosowany, ponieważ nie drukuje szczegółowego opisu wyjątku.

Korzystanie z metody toString().

The doString() metoda Możliwość rzucania klasa zastępuje doString() metoda klasy Object. Drukuje krótki opis wyjątku. Nie pokazuje innych informacji (takich jak nazwa wyjątku i ślad stosu). Nie jest powszechnie używany do drukowania komunikatu o wyjątku.

Użyjmy metody toString() w programie Java.

PrintExceptionMessage4.java

 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); } } } 

Uruchommy powyższy program.

Różne sposoby drukowania komunikatu o wyjątku w Javie

W powyższym komunikacie zauważamy, że wypisuje jedynie nazwę i typ wyjątku. Nie wskazuje, w której linii wystąpił wyjątek.

rzuć obsługę wyjątków w Javie

Widzieliśmy różne sposoby drukowania komunikatu o wyjątku w Javie. Sugerujemy skorzystanie z printStackTrace() metodę, ponieważ wskazuje lokalizację, w której występuje wyjątek.