Статья опубликована в рамках: Научного журнала «Студенческий» № 42(212)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6, скачать журнал часть 7
СОЗДАНИЕ ФУНКЦИОНАЛЬНОЙ ОБЕРТКИ ДЛЯ ОБРАБОТКИ ОШИБОК НА ЯЗЫКЕ JAVA
CREATING EXCEPTIONS PROCESSING FUNCTIONAL WRAPPER IN JAVA LANGUAGE
Maxim Beryanov
Student, PIKT faculty, ITMO University,
Russia, Saint-Petersburg
АННОТАЦИЯ
Программные исключения – неотъемлемая часть большинства приложений. Они имеют место быть ввиду возникновения ошибок и непредвиденных ситуаций при выполнении программы. В языке Java существует несколько способов обработки ошибок, и данная статья нацелена на представление наиболее удобного принципа такой обработки.
ABSTRACT
Software exceptions are an integral part of most applications. They take place due to errors and unforeseen situations during program execution occurrence. There are several ways to handle errors in Java language, and this article aims to present the most convenient principle for such handling.
Ключевые слова: веб, Java, исключение, ошибка, обработка.
Keywords: web, Java, exception, error, handling.
Для обработки исключений в языке Java [1] могут использоваться следующие подходы: 1) добавление блока try-catch [2] в лямбда-утверждение [3]; 2) извлечение блока try-catch в метод-оболочку; 3) создание generic метода-обертки блока try-catch.
Использование блока try-catch для обработки исключений в лямбда-выражении – самый простой способ произвести проверку исключения (рисунок 1).
Рисунок 1. Простой блок try/catch
Скажем, мы используем набор строк, перебирая которые генерируем искусственное исключение RuntimeException с передачей нужного сообщения, а затем в области catch отлавливаем эту ошибку и печатаем на экран. Добавление блока try-catch в лямбда-выражение может ухудшить читабельность кода, ведь он должен быть кратким, так как обычно является частью функциональной цепочки вызовов. Приведенный выше блок try-catch можно выделить в отдельный метод (рисунок 2). Лямбда-выражение теперь преобразуется в краткую и чистую форму представления, занимающая только одну строку.
Рисунок 2. Функция с обработкой исключения внутри
Приведенный выше подход достаточно неплох, но нам придется каждый раз извлекать блок try-catch в отдельный метод. Поскольку forEach требует встроенный функциональный интерфейс Consumer (принимающий один параметр на вход и не возвращающий никаких выходных данных), мы можем создать аналогичный функциональный интерфейс, выбрасывающий Exception в абстрактном методе accept, и статический метод, который принимает данный пользовательский интерфейс (назовем его ExceptionProcessingConsumer) и внутри себя реализует ту самую нужную нам проверку исключительной ситуации (рисунок 3).
Рисунок 3. Обертка с проверкой исключения внутри
Таким образом, благодаря использованию такого вида обертки можно существенно сократить объем кода при проверке исключения в Java-приложении, а использование еще одного обобщенного Consumer внутри блока catch позволит внести еще большую универсальность в такой принцип.
Список литературы:
- Java [Электронный ресурс] URL: https://www.java.com/ru/ (дата обращения: 22.12.2022).
- Обработка ошибок в Java [Электронный ресурс] URL: https://docs.oracle.com/javase/tutorial/essential/exceptions/handling.html (дата обращения: 22.12.2022).
- Лямбда-выражения в Java [Электронный ресурс] URL: https://habr.com/ru/post/512730/ (дата обращения: 22.12.2022).
Оставить комментарий