Свои исключения
Своё исключение — обычный класс-наследник Exception или RuntimeException:
class OrderNotFoundException extends RuntimeException {
OrderNotFoundException(String msg) { super(msg); }
}
Свои исключения делают код понятнее: вместо общего RuntimeException("заказ не найден") — конкретный тип OrderNotFoundException, который можно поймать отдельно от других ошибок.
Копнуть глубже
Цена исключений. Создание исключения дорогое — оно снимает весь stack trace (снимок стека вызовов). Поэтому исключения — для исключительных ситуаций, а не для управления потоком (не кидай исключение вместо if).
🎤 Закрыл тему, если можешь объяснить:
• как создать своё исключение и зачем это нужно;
• почему исключения нельзя использовать вместо `if` (если дошёл до 2-го слоя).
• почему исключения нельзя использовать вместо `if` (если дошёл до 2-го слоя).