Как сделать своё исключение для проверяемого ексепшна? Java

105
08 мая 2021, 02:20

У меня есть метод, который принимает и проверяет пин код. Когда, Я ввожу с клавиатуры значение, код просит его обработь IOException.. Я же хочу его обработать своим созданым исключением и обработать исключение прямо в методе, не прокидывая его вверх. Как мне это сделать. Если Я ставлю в блоке try\catch вместо проверяемого исключения свое, компилятор начинает ругаться.

{
    int errorLeft = 4;
    while (errorLeft>0) {
        errorLeft--;
        try {
            int pinCode = Integer.parseInt(reader.readLine());
            if (pinCode == user.getPinCode()) {
                menu();
                break;
            } else {
                if(errorLeft > 1){
                    System.out.println("Please, try again");
                }
                errorLeft--;
                if(errorLeft == 0){
                    cardBlocker();
                }
            }
        } catch (IOException e) {
            enterPinCode();
            System.out.println("Please, try again");
        }
    }
}
Answer 1

Вам нужно создать свой класс исключения.

public class MyException extends Exception {
    private int number;
    public int getNumber() {
        return number;
    }
    public MyException(String message, int num) {
        super(message);
        number = num;
    }
}

После этого можете спокойно "подменить" исключение из коробки своим. Например:

try{
    // Делаем что-то
} catch (IOExcption e) {
    throw new MyException( "test", 1);
}

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

READ ALSO
Как лучше (красивее) отделить элементы в LinearLayout?

Как лучше (красивее) отделить элементы в LinearLayout?

Имеется интерфейс, который разделен на некоторые разделыВсе они помещены в LinearLayout

92
Intent и фрагмент activity

Intent и фрагмент activity

столкнулся с проблемой, что не знаю как через Intent заставить activity вызвать нужный фрагмент, (по дефолту открывается другой), буду благодарен...

115
Чтение xlsx. Библиотеки

Чтение xlsx. Библиотеки

Всем приветУстал отдавать оперативку по 1-2 гига при чтении xlsx с помощью Apache, подскажите хорошую библиотеку для парсинга xlsx

86
При использовании html() для копирования в jQuery пропадает родительский элемент

При использовании html() для копирования в jQuery пропадает родительский элемент

Есть таблица, откуда нужно скопировать первый элемент и вывести его в другой блокДелаю так

116