Встречается на собеседованиях • сегодня

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

Исключение — это событие (обычно ошибочная ситуация), которое прерывает нормальное выполнение инструкций программы. Они используются для обработки ошибок и других исключительных ситуаций в коде, позволяя программе реагировать на них и, если возможно, восстанавливаться после ошибок, вместо того чтобы просто завершаться с ошибкой.

Зачем они нужны?

Предоставляют способ отделить код обработки ошибок от основного потока выполнения программы. Это улучшает читаемость и поддерживаемость кода, позволяя разработчикам организовать обработку ошибок более эффективно. Использование исключений помогает в следующем:

1. Улучшение читаемости кода: Поскольку обработка ошибок вынесена в отдельные блоки, основной код становится чище и проще для понимания.
2. Простота в обработке ошибок: Позволяют собирать информацию об ошибке и передавать её выше по стеку вызовов, до тех пор, пока не будет найден подходящий обработчик.

3. Разделение логики программы и обработки ошибок: Это помогает избежать смешивания кода программы с проверками на ошибки, делая программу более модульной.

Как они работают?

Делятся на две основные категории: проверяемые (checked) и непроверяемые (unchecked) исключения. 

  • Проверяемые исключения являются теми, которые должны явно обрабатываться в программе. Они являются подклассами `Exception`, за исключением класса `RuntimeException` и его подклассов. 
  • Непроверяемые исключения включают в себя ошибки (`Error`) и исключения времени выполнения (`RuntimeException`). Они обычно указывают на ошибки программирования, такие как неправильное использование API или попытки обращения к объекту через ссылку `null`.

Пример:

text
public class Example {
    public static void main(String[] args) {
        try {
            int result = 10 / 0; // Это вызовет ArithmeticException
        } catch (ArithmeticException e) {
            System.out.println("Произошла арифметическая ошибка: " + e.getMessage());
        } finally {
            System.out.println("Этот блок выполняется всегда после try/catch");
        }
    }
}

В этом примере деление на ноль вызывает исключение `ArithmeticException`, которое затем перехватывается и обрабатывается в блоке `catch`. Блок `finally` выполняется независимо от того, возникло исключение или нет, предоставляя возможность для выполнения любых необходимых операций по очистке.

Исключение — это механизм для обработки ошибок и других исключительных ситуаций, который позволяет программе реагировать на проблемы и продолжать выполнение, вместо того чтобы полностью останавливаться. Использование исключений делает код более читаемым, упрощает обработку ошибок и помогает отделять основную логику программы от обработки исключительных ситуаций.

March 22, 2024, easyoffer

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы