Что такое Stack Trace?
Простой вопрос, который могут задать на техническом собеседовании. Это список вызовов методов от старта программы до места, где произошла ошибка. Для демонстрации примера протестирую код бина 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...
1 год назад
Про 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 😉