Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvPmExTp 354 of 420 menu
◀ ▶

Типы исключений в Java

У каждого исключения есть тип. В catch указывают именно тип, чтобы реагировать на конкретную проблему. Ниже - типы, которые чаще всего встречаются в начальных задачах.

Исключение NumberFormatException возникает, когда строку нельзя преобразовать в число. Так бывает после Integer.parseInt или Double.parseDouble для текста вроде "abc":

String raw = "12x"; try { System.out.println(Integer.parseInt(raw)); } catch (NumberFormatException e) { System.out.println("invalid number"); }

Исключение ArithmeticException связано с недопустимой арифметикой. Для целых чисел типичный случай - деление на ноль:

int x = 10; int y = 0; try { System.out.println(x / y); } catch (ArithmeticException e) { System.out.println("bad division"); }

Исключение NullPointerException появляется при обращении к методу или полю через ссылку null:

String label = null; try { System.out.println(label.length()); } catch (NullPointerException e) { System.out.println("no string"); }

Исключение IllegalArgumentException сигнализирует, что аргумент метода не подходит по смыслу. Его часто выбрасывают сами через throw, когда значение нарушает правило задачи:

public class Main { static void printPositive(int n) { if (n <= 0) { throw new IllegalArgumentException("need positive"); } System.out.println(n); } public static void main(String[] args) { try { printPositive(-1); } catch (IllegalArgumentException e) { System.out.println("bad argument"); } } }

В одном catch указывают один тип. Если нужно по-разному реагировать на разные сбои, добавляют несколько блоков catch - это разберем в следующем уроке.

Дан код:

String input = "9z";

В try получите из input int. В catch для NumberFormatException выведите "format".

Дан код:

int numerator = 14; int denominator = 0;

Вычислите частное в try. При ArithmeticException выведите "math".

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить