Работа с ошибками в Java. Дата и время | OTUS
🚀 OTUS Fest 2021
Бесплатная образовательная онлайн-конференция для IT-специалистов.
Подробнее

Курсы

Программирование
Backend-разработчик на PHP
-9%
Алгоритмы и структуры данных
-9%
Team Lead
-6%
Архитектура и шаблоны проектирования Разработчик IoT
-13%
C# Developer. Professional
-9%
HTML/CSS
-11%
C# ASP.NET Core разработчик
-5%
Kotlin Backend Developer
-8%
iOS Developer. Professional
-8%
Java Developer. Basic C++ Developer. Professional Web-разработчик на Python MS SQL Server Developer Android Developer. Basic Разработчик программных роботов (RPA) на базе UiPath и PIX Microservice Architecture Unity Game Developer. Basic Разработчик голосовых ассистентов и чат-ботов React.js Developer Node.js Developer Интенсив «Оптимизация в Java» Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes JavaScript Developer. Basic Unity Game Developer. Professional Супер-интенсив Azure
Инфраструктура
Экспресс-курс «IaC Ansible»
-10%
Administrator Linux.Basic
-10%
Мониторинг и логирование: Zabbix, Prometheus, ELK
-10%
Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes»
-30%
Administrator Linux. Professional
-6%
Дизайн сетей ЦОД
-13%
NoSQL Основы Windows Server MS SQL Server Developer Инфраструктурная платформа на основе Kubernetes Cloud Solution Architecture Highload Architect Разработчик голосовых ассистентов и чат-ботов VOIP инженер Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив "Tarantool"
Специализации Курсы в разработке Подготовительные курсы
+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 комментариев
Для комментирования необходимо авторизоваться