Работа с ошибками в Java. Дата и время | OTUS
⚡Подписка от OTUS!
Собери свой пул курсов на выгодных условиях. Подробности в чате →
Написать в чат

Курсы

Программирование
Unity Game Developer. Basic
-15%
Разработчик программных роботов (RPA) на базе UiPath и PIX
-6%
Разработчик C#
-8%
Алгоритмы и структуры данных
-8%
Backend-разработчик на PHP
-8%
JavaScript Developer. Professional
-9%
iOS Developer. Professional
-8%
Базы данных
-12%
C# ASP.NET Core разработчик
-6%
Python Developer. Basic
-10%
Java Developer. Professional Web-разработчик на Python Android Developer. Basic PostgreSQL Software Architect Reverse-Engineering. Professional Kotlin Backend Developer React.js Developer VOIP инженер Нереляционные базы данных Scala-разработчик Супер-практикум по использованию и настройке GIT IoT-разработчик JavaScript Developer. Basic Advanced Fullstack JavaScript developer Unity Game Developer. Professional Супер-интенсив Azure
Инфраструктура
Супер-интенсив "Версионирование и командная работа с помощью Git"
-30%
Administrator Linux. Professional
-5%
Супер-интенсив «CI/CD или Непрерывная поставка с Docker и Kubernetes»
-30%
Разработчик программных роботов (RPA) на базе UiPath и PIX
-6%
Administrator Linux. Advanced
-8%
Infrastructure as a code in Ansible
-12%
Network engineer
-4%
MS SQL Server Developer
-8%
Cloud Solution Architecture Highload Architect Разработчик голосовых ассистентов и чат-ботов Мониторинг и логирование: Zabbix, Prometheus, ELK Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Архитектор сетей Супер-интенсив «IaC Ansible»
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Работа с ошибками в Java. Дата и время

Трассировка стека (Stack Trace)

Выявление ошибок — одна из наиболее трудоемких частей процесса разработки на Джава. Этот процесс несколько упрощается с помощью трассировки стека. Stack Trace позволяет точно отслеживать, где именно в вашем проекте возникла ошибка либо исключение (exception).

Пример кода:

Screenshot_1-1801-4436ac.png

NullPointerException

Исключения, которые возникают из-за null-значений (NullPointerException), нередко появляются, когда мы пытаемся вызвать метод у несуществующего объекта.

Возьмем для примера следующий код:

Screenshot_2-1801-8560d4.png

Дата и время

System.currentTimeMillis либо System.nanoTime?

В Java существуют 2 стандартных способа проведения операций со временем, причем не всегда понятно, какой лучше выбрать.

Начнем с метода System.currentTimeMillis(). Он возвращает в формате Long текущее количество миллисекунд с начала эры Unix. Точность находится в пределах от 1 до 15 тысячных долей секунды, что зависит от системы.

Screenshot_3-1801-1e6ea9.png

Что касается метода System.nanoTime(), то он имеет точность до одной наносекунды, возвращая текущее значение наиболее точного и доступного системе таймера.

Screenshot_4-1801-97c2f3.png

Какой тут можно сделать вывод? Метод System.currentTimeMillis() предпочтительнее использовать при отображении и синхронизации абсолютного времени, а метод System.nanoTime() больше подходит для измерения относительных интервалов времени.

Валидация даты из строки

Когда надо достать объект Date из обычной строки, можно воспользоваться небольшим утилитным классом, приведенным ниже. Этот класс позаботится обо всех сложностях как валидации, так и преобразования строки в объект Date.

Screenshot_5-1801-c2c7e8.png

А вот пример использования:

Screenshot_6-1801-e785f0.png

И вывод:

Screenshot_7-1801-66a25f.png

Напутствие: несколько слов о чистоте кода

В крупных проектах первоочередное значение имеет не создание нового кода, а поддержка кода, который уже существует. А значит это следующее: очень важно правильно организовать код с самого начала. Поэтому, разрабатывая новое приложение, всегда помните о 3-х главных принципах чистого и поддерживаемого кода: 1) используйте паттерны проектирования; 2) не забывайте про принципы SOLID; 3) помните про правило 10-50-500 (в одном пакете не должно быть более 10 классов; каждый метод должен быть короче 50 строк, а каждый класс — короче 500 строк кода).

На этом все, удачной вам разработки!

По материалам статьи «Top 25 Java Tricks, Tips, and Best Practices».

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться