Простой вопрос, который могут задать на техническом собеседовании. Это список вызовов методов от старта программы до места, где произошла ошибка. Для демонстрации примера протестирую код бина StockQuote, созданного в предыдущем посте.
public class TestStockQuote {
public static void main(String[] args) {
StockQuote quote = new StockQuote();
System.out.println(quote.getHigh() / quote.getLow());
}
}
При попытке запустить этот код получу следующее:
Exception in thread "main" java...
Про debug tools Прекрасно живу без debug режима IDE 99% времени. Условный print / console.log выручает почти всегда. Прям оч редко нужен именно debug, но когда нужен, то нужен по полной, честно говоря. Последнее, что вспоминается из debug и точки останова - python, либа requests. Приходит баг, что мы обрабатываем не весь 1Gb файл. Качаешь локально - реально не весь, пытаешься понять, что менял - по коду ничего. Тянем curl-ом - все ОК. Начали смотреть либы - обновляли общую нашу внутреннюю, в ней минорно (вроде минорно) обновлен requests. Почитали release notes - ничего особенного. Начали дебажить. Так как файлы могут быть большие, код читет буффером до перевода строки, парсит и отправляет через yield дальше в наш конвеер и читает из сети еще. Думали, что у нас происходит что-то, что закрывает поток или еще что-то в этом роде. Но нет - нашли место в коде request с последнего обновления, которое приносило баг. Пришлось откатить requests. Решали день или два - не помню точно. Без debug в ide, просмотра переменных в памяти питона, остановки рантайма и вызова внутренних методов requests я хз сколько решали бы. Поэтому: - не надо упарываться, а надо решать просто по возможности, если для вас это быстрее - debug tools знать надо - без них как без SQL 😉