Подтвердить что ты не робот

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

Я просматриваю программу сокета. В нем printStackTrace вызывается в объекте IOException в блоке catch.
Что делает printStackTrace() на самом деле?

catch(IOException ioe)
{
    ioe.printStackTrace();
}

Я не знаю его цели. Для чего его используют?

4b9b3361

Ответ 2

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

    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)

Ответ 3

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

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

Ответ 4

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

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

Наряду с методом printStackTrace() рекомендуется использовать e.getmessage().

Ответ 5

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

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

Ответ 6

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

Ответ 7

Что такое метод 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)

Ответ 8

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

  • Название исключения.
  • Описание исключения.
  • Где мы получаем исключение.

Существует три метода, описывающих исключение на консоли, в которой printStackTrace является одним из них. эти три метода:

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