— Привет, Амиго!
— Привет, Диего!
— Вот тебе несколько задач на вывод стек-трейса.
3
Задача
Java Syntax, 9 уровень, 2 лекция
Недоступна
Возвращаем StackTrace
Принцип стека несправедлив и суров. Но иногда так полезен! Помните, что функция, вызванная последней, должна завершиться самой первой. Давайте попрактикуемся и посмотрим, что из этого выйдет: нам нужно написать пять методов, которые вызывают друг друга. Каждый метод должен возвращать свой StackTrace.
6
Задача
Java Syntax, 9 уровень, 2 лекция
Недоступна
И снова StackTrace
Давайте сразу перейдем к делу: напишите 5 методов, которые вызывают друг друга. Каждый метод должен возвращать имя метода, вызвавшего его, полученное с помощью StackTrace. Это имя — дальше, чем звезды. Но мы разберемся, это всего-навсего методы, которые последовательно вызывают друг друга, и ничего более.
3
Задача
Java Syntax, 9 уровень, 2 лекция
Недоступна
Кто меня вызывал?
Стек вызовов, может, не самая красивая конструкция… Хотя почему нет? Он логичен, к нему просто привыкнуть нужно. Привыкаем с задачами! В этот раз вам нужно написать пять методов, которые вызывают друг друга. Метод должен вернуть номер строки кода, из которого вызвали этот метод. Для этого воспользуйтесь функцией: element.getLineNumber().
3
Задача
Java Syntax, 9 уровень, 2 лекция
Недоступна
Стек-трейс длиной 10 вызовов
Мне повезло: в младших классах Марья Ивановна вечно писала на доске фразу: «Функция, вызванная последней, должна завершиться самой первой». И заставляла выучить её на память, заверяя, что когда-нибуть поймем. Спасибо, Марья Ивановна, кажется, этот день настал. Я даже могу написать код, чтобы получить стек-трейс длиной 10 вызовов. А вы можете?
3
Задача
Java Syntax, 9 уровень, 2 лекция
Недоступна
Там, в синих глубинах стек-трейса…
Помните золотое правило: функция А вызывает функцию Б, а та вызывает функцию В. И чтобы выйти из А, надо сначала выйди из Б, а для этого надо выйти из В. Вспомнили? Вот и хорошо. А теперь напишем метод, который возвращает результат – глубину его стек-трейса – количество методов в нем (количество элементов в списке). И ещё: пускай это число метод выведет на экран.
3
Задача
Java Syntax, 9 уровень, 2 лекция
Недоступна
Логирование стек-трейса
Если вы занимаесь чем-то более или менее серьезно, вы, так или иначе, придете к логированию. Не медлим, реализуем метод log. Он должен выводить на экран имя класса и имя метода (в котором вызывается метод log), а также переданное сообщение. Имя класса, имя метода и сообщение разделим для наглядности двоеточием с пробелом.