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 (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();
}
}
}
Арсен
15 уровень
Что не так ругается на 28 строку?
Решен
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Антон
2 сентября 2018, 12:13
Добавь в объявление метода processExceptions класс исключения, которое ты пробрасываешь в п.2.1.
0
DimaExpert
12 июля 2018, 12:31
Ты в блоке catch бросаешь исключение. Вариантов 2.
1-й - добавить в этом блоке catch еще один блок catch
2-й - добвить сигнатуру метода processExceptions, что он може выбросить исключение
В IDEA наводишь курсор на это место и нажимаешь ALT+Enter и выбираешь любой из 2-х вариантов описанных выше
+4
Oleksandr Pakhomov
27 июля 2018, 14:38
Валидатор не устраивает вариант (1) -
а вариант (2) дописывающий в метод throws FileSystemException валидатор устраивает
0
Джал
11 июля 2018, 21:57полезный
Что-то с порядком исключений.
+1