Прохожу через программу сокета. В нем printStackTrace
вызывается IOException
объект в блоке catch.
Что на printStackTrace()
самом деле делает?
catch(IOException ioe)
{
ioe.printStackTrace();
}
Я не знаю его цели. Для чего его используют?
Прохожу через программу сокета. В нем printStackTrace
вызывается IOException
объект в блоке catch.
Что на printStackTrace()
самом деле делает?
catch(IOException ioe)
{
ioe.printStackTrace();
}
Я не знаю его цели. Для чего его используют?
e.printStackTrace(); System.exit(1);
Здесь я хочу задать тот же вопрос, что и OP, но в другом ключе: какова именно цель этого? Не будет ли JRE автоматически печатать трассировку стека и завершать работу при возникновении исключения? То есть, здесь не так уж много "обработки исключений", верно ??Ответы:
Это метод
Exception
экземпляров, который выводит трассировку стека экземпляра вSystem.err
.Это очень простой, но очень полезный инструмент для диагностики исключений. Он сообщает вам, что произошло и где в коде это произошло.
Вот пример того, как это можно использовать на практике:
источник
catch
блоков №1 :-)throw new RuntimeException(e)
Мне это тоже было любопытно, поэтому я просто собрал небольшой пример кода, где вы можете увидеть, что он делает:
Вызов
println(e)
:Вызов
e.printStackTrace()
:источник
System.err.println(e);
будет уместнее.Это помогает отследить исключение. Например, вы пишете несколько методов в своей программе, и один из ваших методов вызывает ошибку. Затем printstack поможет вам определить, какой метод вызывает ошибку. Стек поможет так:
Сначала будет вызван ваш основной метод и вставлен в стек, затем будет вызван второй метод и вставлен в стек в порядке LIFO, и если какая-либо ошибка произойдет где-то внутри любого метода, этот стек поможет идентифицировать этот метод.
источник
printStackTrace()
помогает программисту понять, где действительно возникла проблема.printStacktrace()
это метод классаThrowable
изjava.lang
пакета. Он выводит несколько строк в консоль вывода. Первая строка состоит из нескольких строк. Он содержит имя подкласса Throwable и информацию о пакете. Начиная со второй строки, он описывает позицию ошибки / номер строки, начиная сat
.Последняя строка всегда описывает пункт назначения, затронутый ошибкой / исключением. Вторая последняя строка сообщает нам о следующей строке в стеке, куда переходит управление после получения передачи с номера строки, описанной в последней строке. Ошибки / исключения представляют собой вывод в виде стека, который был загружен в стек
fillInStackTrace()
методомThrowable
класса, который сам заполняет детали передачи управления программой в стек выполнения. Строки, начинающиеся сat
, - не что иное, как значения стека выполнения. Таким образом, программист может понять, где в коде реальная проблема.printStackTrace()
Это хорошая идея, наряду с методомe.getmessage()
.источник
printStackTrace()
печатает места возникновения исключения в исходном коде, позволяя автору, написавшему программу, увидеть, что пошло не так. Но поскольку он показывает проблемы в исходном коде, пользователи, которые могут иметь или не иметь опыта программирования, могут быть не в состоянии понять, что пошло не так, поэтому, если программа позволяет пользователю отправлять сообщения об ошибках авторам, пользователи могут быть не в состоянии предоставить достоверные данные о том, что пошло не так.Вы должны рассмотреть этот
Logger.getLogger()
метод, он предлагает лучшую возможность обработки исключений (ведения журнала) и, кроме того,printStackTrace()
без аргументов считается устаревшим и должен использоваться ТОЛЬКО для целей отладки, а не для отображения пользователем.источник
Это
printStackTrace()
помогает программисту понять, где действительно возникла проблема.printStackTrace()
Метод является членом классаThrowable
вjava.lang
пакете.источник
printStackTrace
это методThrowable
класса. Этот метод отображает сообщение об ошибке в консоли; где мы получаем исключение в исходном коде. Эти методы можно использовать с блоком catch, и они описывают:Три метода, описывающих исключение на консоли (в которых printStackTrace является одним из них):
printStackTrace()
toString()
getMessage()
Пример:
источник
printStackTrace () помогает программисту понять, где действительно возникла проблема. Это помогает отследить исключение. это метод printStackTrace () класса Throwable, унаследованный каждым классом исключений. Этот метод выводит то же сообщение объекта e, а также номер строки, в которой произошло исключение.
Ниже приведен еще один пример стека печати исключения в Java.
java.lang.Throwable: это новое исключение в Java ... в ClassName.methodName (fileName: 5)
источник
Какая польза от метода e.printStackTrace () в Java?
Что ж, цель использования этого метода
e.printStackTrace();
- увидеть, что именно не так.Например, мы хотим обработать исключение. Давайте посмотрим на следующий пример.
Я использовал метод
e.printStackTrace();
, чтобы точно показать, что не так.На выходе мы видим следующий результат.
источник
printStackTrace()
сообщает, в какой строке вы получаете ошибку или почему вы получаете ошибку.Пример:
источник