Простой вопрос, который могут задать на техническом собеседовании. Это список вызовов методов от старта программы до места, где произошла ошибка. Для демонстрации примера протестирую код бина 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.lang.NullPointerException:
Cannot invoke "java.lang.Float.floatValue()" because the return value of "StockQuote.getHigh()" is null
at TestStockQuote.main(TestStockQuote.java:4)
Это и есть простейший Stack Trace, указывающий на то, что на 4й строчке кода я поймал NPE. Stack Trace используется для отладки кода потому что в моменте отображает полную картину вызова с точным указанием места возникновения ошибки. Но обычного пользователя такие сообщения шикируют, поэтому лучше заворачивать потенциально небезопасный код в try – catch, а сообщения об ошибках перенаправлять в лог.
Что такое Stack Trace?
11 марта 202411 мар 2024
43
~1 мин