Блок catch
Блок catch используется вместе с блоком try
для перехвата и обработки исключений. Когда в блоке
try возникает исключение, управление передается
соответствующему блоку catch. В параметре блока
catch указывается тип исключения, которое нужно
перехватить, и имя переменной для доступа к объекту
исключения. Можно указать несколько блоков catch
для обработки разных типов исключений.
Синтаксис
try
{
// код, который может вызвать исключение
}
catch (ExceptionType e)
{
// обработка исключения
}
Пример
Давайте перехватим исключение при делении на ноль:
public class Main
{
public static void main(String[] args)
{
try
{
int res = 10 / 0;
System.out.println(res);
}
catch (ArithmeticException e)
{
System.out.println("Caught: " + e.getMessage());
}
}
}
Результат выполнения кода:
"Caught: / by zero"
Пример
Давайте перехватим исключение при обращении к элементу массива за его пределами:
public class Main
{
public static void main(String[] args)
{
int[] arr = {1, 2, 3};
try
{
System.out.println(arr[5]);
}
catch (ArrayIndexOutOfBoundsException e)
{
System.out.println("Index error: " + e.getMessage());
}
}
}
Результат выполнения кода:
"Index error: Index 5 out of bounds for length 3"
Пример
Давайте используем несколько блоков catch
для обработки разных типов исключений:
public class Main
{
public static void main(String[] args)
{
try
{
String str = null;
System.out.println(str.length());
}
catch (NullPointerException e)
{
System.out.println("Null error: " + e.getMessage());
}
catch (Exception e)
{
System.out.println("General error: " + e.getMessage());
}
}
}
Результат выполнения кода:
"Null error: Cannot invoke \"String.length()\" because \"str\" is null"