Перейти к содержимому

Как сделать исключение проверяемым java

  • автор:

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

У меня есть метод, который принимает и проверяет пин код. Когда, Я ввожу с клавиатуры значение, код просит его обработь 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"); >> > 

Отслеживать

задан 2 авг 2019 в 12:25

Как сделать исключение проверяемым java

Хотя имеющиеся в стандартной библиотеке классов Java классы исключений описывают большинство исключительных ситуаций, которые могут возникнуть при выполнении программы, все таки иногда требуется создать свои собственные классы исключений со своей логикой.

Чтобы создать свой класс исключений, надо унаследовать его от класса Exception. Например, у нас есть класс, вычисляющий факториал, и нам надо выбрасывать специальное исключение, если число, передаваемое в метод, меньше 1:

class Factorial < public static int getFactorial(int num) throws FactorialException< int result=1; if(num<1) throw new FactorialException("The number is less than 1", num); for(int i=1; i<=num;i++)< result*=i; >return result; > > class FactorialException extends Exception < private int number; public int getNumber()public FactorialException(String message, int num) < super(message); number=num; >>

Здесь для определения ошибки, связанной с вычислением факториала, определен класс FactorialException , который наследуется от Exception и который содержит всю информацию о вычислении. В конструкторе FactorialException в конструктор базового класса Exception передается сообщение об ошибке: super(message) . Кроме того, отдельное поле предназначено для хранения числа, факториал которого вычисляется.

Для генерации исключения в методе вычисления факториала выбрасывается исключение с помощью оператора throw: throw new FactorialException(«Число не может быть меньше 1», num) . Кроме того, так как это исключение не обрабатывается с помощью try..catch, то мы передаем обработку вызывающему методу, используя оператор throws: public static int getFactorial(int num) throws FactorialException

Теперь используем класс в методе main:

public static void main(String[] args) < try< int result = Factorial.getFactorial(6); System.out.println(result); >catch(FactorialException ex) < System.out.println(ex.getMessage()); System.out.println(ex.getNumber()); >>

Понимание проверяемых и непроверяемых исключений в Java

Многие начинающие программисты на языке Java сталкиваются с понятиями «проверяемые» и «непроверяемые» исключения. Эта статья будет посвящена пониманию этих терминов и их применению в коде.

В Java существуют два типа исключений: проверяемые (checked) и непроверяемые (unchecked). Это разделение основано на том, как и когда эти исключения обрабатываются.

Проверяемые исключения

Проверяемые исключения — это ошибки, которые Java-компилятор может предсказать во время компиляции кода. Это могут быть ошибки ввода-вывода, ошибки SQL и другие.

try < // код, который может вызвать исключение >catch (IOException e) < // обработка исключения >

В примере выше, если в блоке try возникнет исключение IOException , оно будет перехвачено и обработано в блоке catch .

Непроверяемые исключения

Непроверяемые исключения — это ошибки, которые Java-компилятор не может предсказать во время компиляции. Поэтому они обычно связаны с логическими ошибками в коде. Примеры таких исключений — это NullPointerException , ArrayIndexOutOfBoundsException и другие.

try < // код, который может вызвать исключение >catch (NullPointerException e) < // обработка исключения >

В этом примере, если в блоке try возникнет исключение NullPointerException , оно будет перехвачено и обработано в блоке catch .

Пузырьковый подход

Иногда полезно использовать так называемый «пузырьковый подход» к обработке исключений. Это означает, что исключение не обрабатывается сразу же в месте, где оно возникло, а «всплывает» вверх по стеку вызовов до того места, где оно может быть корректно обработано. Это позволяет упростить код и улучшить его читаемость.

public void someMethod() throws Exception < // код, который может вызвать исключение >

В примере выше, метод someMethod не обрабатывает возможное исключение самостоятельно, а пропускает его «вверх» по стеку вызовов.

В заключение, хотелось бы отметить, что правильное использование исключений может значительно упростить процесс отладки и поддержки кода.

Как сделать исключение проверяемым java

JavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.

Подписывайтесь

Язык интерфейса

«Программистами не рождаются» © 2024 JavaRush

Скачивайте наши приложения

«Программистами не рождаются» © 2024 JavaRush

Этот веб-сайт использует данные cookie, чтобы настроить персонально под вас работу сервиса. Используя веб-сайт, вы даете согласие на применение данных cookie. Больше подробностей — в нашем Пользовательском соглашении.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *