Карта / Исключения / Свои исключения

Свои исключения

Своё исключение — обычный класс-наследник Exception или RuntimeException:

class OrderNotFoundException extends RuntimeException {
    OrderNotFoundException(String msg) { super(msg); }
}

Свои исключения делают код понятнее: вместо общего RuntimeException("заказ не найден") — конкретный тип OrderNotFoundException, который можно поймать отдельно от других ошибок.

Копнуть глубже

Цена исключений. Создание исключения дорогое — оно снимает весь stack trace (снимок стека вызовов). Поэтому исключения — для исключительных ситуаций, а не для управления потоком (не кидай исключение вместо if).

🎤 Закрыл тему, если можешь объяснить:
• как создать своё исключение и зачем это нужно;
• почему исключения нельзя использовать вместо `if` (если дошёл до 2-го слоя).