Что такое использование метода printStackTrace () в Java?


Я иду через программу гнезда. В нем,printStackTrace о

8 80

8 ответов:

Это метод на Exception экземпляров выводит трассировку стека экземпляра в System.err.

Это очень простой, но очень полезный инструмент для диагностики и исключения. Он говорит вам, что произошло и где в коде это произошло.

вот пример того, как это может быть использовано на практике:

try {
    // ...
} catch (SomeException e) { 
    e.printStackTrace();
}

мне тоже было любопытно, поэтому я просто собрал небольшой пример кода, где вы можете увидеть, что он делает:

try {
    throw new NullPointerException();
}
catch (NullPointerException e) {
    System.out.println(e);
}

try {
    throw new IOException();
}
catch (IOException e) {
    e.printStackTrace();
}
System.exit(0);

вызов println(e):

java.lang.NullPointerException

вызов e.printStackTrace():

java.io.IOException
      at package.Test.main(Test.java:74)

Это помогает отследить исключение. Например, вы пишете некоторые методы в своей программе, и один из ваших методов вызывает ошибку. Затем printstack поможет вам определить, какой метод вызывает ошибку. Стек поможет вот так:

сначала ваш основной метод будет вызван и вставлен в стек, затем второй метод будет вызван и вставлен в стек в порядке LIFO, и если какая-либо ошибка возникает где-то внутри любого метода, то этот стек поможет определить это метод.

printStackTrace() помогает программисту понять, где возникла реальная проблема. printStacktrace() - Это метод класса Throwable на . Он печатает несколько строк в консоли вывода. Первая строка состоит из нескольких строк. Он содержит имя подкласса Throwable и информацию о пакете. Начиная со второй строки, он описывает положение ошибки / номер строки, начинающийся с at.

последняя строка всегда описывает назначения ошибка/исключение. Вторая последняя строка сообщает нам о следующей строке в стеке, где элемент управления переходит после получения передачи от номера строки, описанного в последней строке. Ошибки / исключения представляют собой выходные данные в виде стека, которые были поданы в стек с помощью fillInStackTrace() метод Throwable класс, который сам заполняет данные передачи управления программой в стек выполнения. Строки, начинающиеся с at, не что иное, как значения стека выполнения. Таким образом программист может понять, где в коде находится реальная проблема.

вместе с printStackTrace() метод, это хорошая идея, чтобы использовать e.getmessage().

printStackTrace() печатает места, где произошло исключение в исходном коде, что позволяет автору, написавшему программу, увидеть, что пошло не так. Но поскольку он показывает проблемы в исходном коде, пользователь (Ы), который может или не может иметь никакого опыта кодирования, может быть не в состоянии понять, что пошло не так, поэтому, если программа позволяет пользователю отправлять сообщения об ошибках авторам, пользователи не могут дать хорошие данные о том, что пошло не так.

вы должны рассмотреть Logger.getLogger() метод, он предлагает лучшее средство обработки исключений (ведение журнала), и кроме того printStackTrace() без аргументов считается устаревшим и должно использоваться только для целей отладки, а не для отображения пользователем.

The printStackTrace() помогает программисту понять, где возникла реальная проблема. Элемент printStackTrace() метод является членом класса Throwable на .

printStackTrace метод Throwable класса. Этот метод выводит сообщение об ошибке в консоли; где мы получаем исключение в исходном коде. Эти методы могут быть использованы с блоком catch и они описывают:

  1. имя исключения.
  2. описание исключения.
  3. расположение исключения в исходном коде.

три метода, которые описывают исключение на консоли (в которой printStackTrace является один из них):

  1. printStackTrace()
  2. toString()
  3. getMessage()

пример:

public class BabluGope {
    public static void main(String[] args) {
        try {
            System.out.println(10/0);
         } catch (ArithmeticException e) {
             e.printStackTrace();   
             // System.err.println(e.toString());
             //System.err.println(e.getMessage());  
         }
    }
}

Что такое использование метода e. printStackTrace () в Java?

Ну, цель использования этого метода e.printStackTrace(); чтобы увидеть, что именно неправильно.

например, мы хотим обработать исключение. Давайте рассмотрим следующий пример.

public class Main{

  public static void main(String[] args) {

    int a = 12;
    int b = 2;

    try {
       int result = a / (b - 2);
       System.out.println(result);
    }

    catch (Exception e)
    {
       System.out.println("Error: " + e.getMessage());
       e.printStackTrace();
    }
  }
}

я использовал метод e.printStackTrace(); для того, чтобы показать, что именно не так.

на выходе мы видим следующий результат.

Error: / by zero

java.lang.ArithmeticException: / by zero

  at Main.main(Main.java:10)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:498)
  at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)