23:44
Урок 16: Основы обработки исключений

Курс по программированию на Java

Урок 16: Основы обработки исключений

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

Что такое исключения?

Исключения — это события, которые происходят во время выполнения программы и нарушают её нормальное выполнение. В Java исключения обрабатываются с помощью блоков try, catch и finally.

Основные блоки для обработки исключений

Для обработки исключений используются следующие блоки:

  • try - блок, в котором может возникнуть исключение
  • catch - блок, который обрабатывает возникшее исключение
  • finally - блок, который выполняется в любом случае, вне зависимости от того, возникло исключение или нет

Пример обработки исключений

Рассмотрим пример обработки исключений с использованием блоков try, catch и finally:

public class ExceptionHandlingExample {
 public static void main(String[] args) {
 try {
 int[] numbers = {1, 2, 3};
 System.out.println(numbers[5]);
 } catch (ArrayIndexOutOfBoundsException e) {
 System.out.println("Индекс находится вне диапазона!");
 } finally {
 System.out.println("Этот блок выполняется всегда.");
 }
 }
}

Результат выполнения

Индекс находится вне диапазона!
Этот блок выполняется всегда.

Иерархия исключений

Все исключения в Java являются наследниками класса Throwable. Существует два основных типа исключений:

  • Exception - основные исключения, которые можно обрабатывать
  • Error - исключения, которые обычно не должны обрабатываться (например, ошибки виртуальной машины)

Пользовательские исключения

В Java можно создавать собственные исключения, наследуя класс Exception. Пример создания пользовательского исключения:

class CustomException extends Exception {
 public CustomException(String message) {
 super(message);
 }
}

public class CustomExceptionExample {
 public static void main(String[] args) {
 try {
 throw new CustomException("Это пользовательское исключение");
 } catch (CustomException e) {
 System.out.println(e.getMessage());
 }
 }
}

Результат выполнения

Это пользовательское исключение

Упражнения

Упражнение 1: Деление на ноль

Напишите программу, которая делит два числа, введенные пользователем. Обработайте исключение ArithmeticException, которое возникает при делении на ноль.

Решение:

import java.util.Scanner;

public class DivisionExample {
 public static void main(String[] args) {
 Scanner scanner = new Scanner(System.in);
 System.out.print("Введите делимое: ");
 int dividend = scanner.nextInt();
 System.out.print("Введите делитель: ");
 int divisor = scanner.nextInt();
 
 try {
 int result = dividend / divisor;
 System.out.println("Результат: " + result);
 } catch (ArithmeticException e) {
 System.out.println("Ошибка: деление на ноль!");
 } finally {
 System.out.println("Операция завершена.");
 }
 }
}

Объяснение: Программа запрашивает два числа у пользователя и делит их. Если делитель равен нулю, возникает исключение ArithmeticException, которое обрабатывается в блоке catch. Блок finally выполняется в любом случае.

Упражнение 2: Проверка на отрицательное значение

Напишите программу, которая принимает число от пользователя и проверяет, является ли оно отрицательным. Если число отрицательное, выбросите пользовательское исключение NegativeNumberException.

Решение:

import java.util.Scanner;

class NegativeNumberException extends Exception {
 public NegativeNumberException(String message) {
 super(message);
 }
}

public class NegativeNumberCheck {
 public static void main(String[] args) {
 Scanner scanner = new Scanner(System.in);
 System.out.print("Введите число: ");
 int number = scanner.nextInt();
 
 try {
 if (number < 0) {
 throw new NegativeNumberException("Число не должно быть отрицательным!");
 }
 System.out.println("Вы ввели положительное число: " + number);
 } catch (NegativeNumberException e) {
 System.out.println(e.getMessage());
 } finally {
 System.out.println("Проверка завершена.");
 }
 }
}

Объяснение: Программа принимает число от пользователя и проверяет, является ли оно отрицательным. Если число отрицательное, выбрасывается пользовательское исключение NegativeNumberException. Исключение обрабатывается в блоке catch, и соответствующее сообщение выводится на экран. Блок finally выполняется в любом случае.

Категория: Java | Просмотров: 89 | Добавил: Admin | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: