Сеня рядом и Белла пришел. Былое
Java. Часто возникающие ошибки java.lang.Error
Некоторые из наиболее частых ошибок, которые могут возникнуть при использовании Java, и как их можно исправить. Как исправить ошибки в Java? Исправление ошибок в Java зависит от конкретной проблемы. Некоторые из наиболее распространенных способов исправления ошибок включают: Java является мощным языком программирования, который может использоваться для создания разнообразных приложений и веб-сайтов. Однако, как и любой другой язык программирования, Java также сталкивается с ошибками во время выполнения программы...
🖥 Что такое stack trace, и как с его помощью находить ошибки при разработке приложений? ▶️Иногда при запуске приложения можно получить подобную ошибку: Exception in thread "main" java.lang.NullPointerException at com.example.myproject.Book.getTitle(Book.java:16) at com.example.myproject.Author.getBookTitles(Author.java:25) at com.example.myproject.Bootstrap.main(Bootstrap.java:14) Это называется «трассировка стека» или «stack trace». Что вообще такое трассировка? Какую полезную информацию об ошибке в разрабатываемой программе она содержит? ▶️Простыми словами, трассировка стека – это список методов, которые были вызваны до момента, когда в приложении произошло исключение. 🟡Простой случай. В указанном примере мы можем точно определить, когда именно произошло исключение. Рассмотрим трассировку стека: Exception in thread "main" java.lang.NullPointerException at com.example.myproject.Book.getTitle(Book.java:16) at com.example.myproject.Author.getBookTitles(Author.java:25) at com.example.myproject.Bootstrap.main(Bootstrap.java:14) Это пример очень простой трассировки. Если пойти по списку строк вида «at…» с самого начала, мы можем понять, где произошла ошибка. Мы смотрим на верхний вызов функции. В нашем случае, это: at com.example.myproject.Book.getTitle(Book.java:16) Для отладки этого фрагмента открываем Book.java и смотрим, что находится на строке 16: public String getTitle() { System.out.println(title.toString()); <-- line 16 return title; } Это означает то, что в приведенном фрагменте кода какая-то переменная (вероятно, title) имеет значение null. 🟡Пример цепочки исключений. Иногда приложения перехватывают исключение и выбрасывают его в виде другого исключения. Обычно это выглядит так: try { .... } catch (NullPointerException e) { throw new IllegalStateException("A book has a null property", e) } Трассировка в этом случае может иметь следующий вид: Exception in thread "main" java.lang.IllegalStateException: A book has a null property at com.example.myproject.Author.getBookIds(Author.java:38) at com.example.myproject.Bootstrap.main(Bootstrap.java:14) Caused by: java.lang.NullPointerException at com.example.myproject.Book.getId(Book.java:22) at com.example.myproject.Author.getBookIds(Author.java:35) ... 1 more 📎 Подробнее @javarush