Что такое использование метода printStackTrace () в Java?
Я иду через программу гнезда. В нем,printStackTrace
о
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 и они описывают:
- имя исключения.
- описание исключения.
- расположение исключения в исходном коде.
три метода, которые описывают исключение на консоли (в которой 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()); } } }
Что такое использование метода 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)