JavaRush
AI Academy
Акция
Университет
Java FullStack
Python FullStack
AI Native Developer
new
Web FullStack
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/Что не так?
milamila5373
22 уровень
  • 22.10.2018
  • 1111просмотров
  • 6комментариев

Что не так?

Вопрос по задаче Перехват выборочных исключений
Java Syntax,  9 уровень,  8 лекция
Решен


1. Разберись, какие исключения бросает метод BEAN.methodThrowExceptions.
2. Метод handleExceptions должен вызывать метод BEAN.methodThrowExceptions и обрабатывать исключения:
2.1. если возникло исключение FileSystemException, то логировать его (вызвать метод BEAN.log) и пробросить дальше
2.2. если возникло исключение CharConversionException или любое другое IOException, то только логировать его (вызвать метод BEAN.log)
3. Добавь в объявление метода handleExceptions класс исключения, которое ты пробрасываешь в п.2.1.
4. В методе main обработай оставшееся исключение - логируй его. Используй try..catch

Подсказка:
Если ты захватил исключение MyException, которое не хотел захватывать, его можно пробросить дальше кодом вида:
catch (MyException e) {
 throw e;
}

Требования:
  • Метод handleExceptions должен вызывать метод BEAN.methodThrowExceptions.
  • Метод handleExceptions должен логировать исключение FileSystemException (вызвать метод BEAN.log), а затем пробросить его дальше.
  • Метод handleExceptions должен только логировать (вызвать метод BEAN.log) исключение CharConversionException.
  • Метод handleExceptions должен только логировать любое исключение IOException.
  • Добавь в объявление метода handleExceptions класс исключения FileSystemException.
  • Метод main должен использовать try..catch.
  • Метод main должен логировать исключения, которые кидает метод handleExceptions.
....
package com.javarush.task.task09.task0915; import java.io.CharConversionException; import java.io.IOException; import java.nio.file.FileSystemException; /* Перехват выборочных исключений */ public class Solution { public static StatelessBean BEAN = new StatelessBean(); public static void main(String[] args) { try { processExceptions(); } catch (FileSystemException e) { BEAN.log(e); } catch (Exception e) { BEAN.log(e); } } public static void processExceptions() { try { BEAN.methodThrowExceptions(); } catch (FileSystemException e) { BEAN.log(e); throw e; } catch (CharConversionException e) { BEAN.log(e); } catch (IOException e) { BEAN.log(e); } } public static class StatelessBean { public void log(Exception exception) { System.out.println(exception.getMessage() + ", " + exception.getClass().getSimpleName()); } public void methodThrowExceptions() throws CharConversionException, FileSystemException, IOException { int i = (int) (Math.random() * 3); if (i == 0) throw new CharConversionException(); if (i == 1) throw new FileSystemException(""); if (i == 2) throw new IOException(); } } }
0
Комментарии (6)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Илья Геков
Уровень 40
Master
22 октября 2018, 22:48
У вас метод handleExceptions превратился каким-то образом в processExceptions
0
Артем DivertittoSenior Android-разработчи в United TechMaster
23 октября 2018, 09:32решение
И кроме этого, если ты кидаешь проверяемые исключения, то нужно их или обраватывать, или помечать метод
throw e;
+2
Ilya
Уровень 12
19 ноября 2018, 19:39
подскажите пожалуйста что значит логировать?
0
Ilya
Уровень 12
19 ноября 2018, 19:39
подскажите пожалуйста что значит логировать?
0
Илья Геков
Уровень 40
Master
19 ноября 2018, 20:31
Записывать какие-либо данные о ходе выполнения программы в лог. Под логом, как правило, понимается отдельный файл, но это не обязательно, может быть и, к примеру, консоль
0
Ilya
Уровень 12
19 ноября 2018, 20:48
спасибо
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush