Разница между проверенным исключением и исключением во время выполнения

Разница между проверенным исключением и исключением во время выполнения
Разница между проверенным исключением и исключением во время выполнения

Видео: Разница между проверенным исключением и исключением во время выполнения

Видео: Разница между проверенным исключением и исключением во время выполнения
Видео: Подготовка к Java собеседованию #3.1 Исключения (Exceptions) 2024, Июль
Anonim

Проверенное исключение и исключение среды выполнения

Исключения - это особый тип событий, которые могут нарушить нормальный ход программы. Исключение имени происходит от «исключительное событие». Генерация исключения - это процесс создания объекта исключения и его передачи системе выполнения. Когда исполняющая система получает объект исключения, она пытается найти кого-то, кто обработает его в стеке вызовов, обходя его в обратном порядке (в котором были вызваны методы). Система выполнения считается успешной, если она находит метод с обработчиком исключений. Обработчик исключений - это блок кода, который может официально обрабатывать указанное исключение. Если система выполнения находит подходящий обработчик, она передает объект исключения этому обработчику. Это называется перехватом исключения. Однако, если исключение не может быть обработано, программа завершится. В Java исключения наследуются от класса Throwable. Checked Exceptions - это исключения, обработка которых принудительно выполняется компилятором. Исключения времени выполнения - это тип исключений, которые не проверяются компилятором.

Что такое проверенное исключение?

Проверенные исключения - это объекты класса java.lang.exception или его подклассов (кроме java.lang. RuntimeException и его подклассов). Проверенные исключения «проверяются» во время компиляции. Это означает, что программист должен либо перехватывать, либо выбрасывать эти исключения, иначе компиляция выдаст ошибку (вызвав ошибку компилятора). По этой причине многие проверяемые исключения хорошо известны программистам. Например, IOException и его подклассы являются проверенными исключениями, и всякий раз, когда программист имеет дело с доступом к файлу или его изменением, компилятор проверяет, чтобы убедиться, что программист позаботился обо всех возможных исключениях IOException.

Что такое исключение времени выполнения?

Исключения времени выполнения состоят из java.lang. RuntimeException и всех его подклассов. Теоретически они служат той же цели, что и проверенные исключения, и могут быть выброшены или обработаны как проверенное исключение, но их обработка не обеспечивается компилятором. Следовательно, исключения времени выполнения относятся к семейству непроверенных исключений. NullPointerException, NumberFormatEception, ClassCastException и ArrayIndexOutOfBoundsException являются распространенными исключениями во время выполнения в Java.

В чем разница между Checked Exception и Runtime Exception?

Несмотря на то, что как проверенные исключения, так и исключения во время выполнения являются нежелательными явлениями во время выполнения программы, они имеют свои отличия. Обработка проверенных исключений обеспечивается компилятором, а исключения во время выполнения - нет. Следовательно, проверенные исключения должны создаваться или обрабатываться для компиляции кода, но в отношении исключений во время выполнения такого требования нет. Следовательно, исключения во время выполнения относятся к категории непроверенных исключений вместе с ошибками.

Недостаток проверенных исключений в том, что программисту приходится обрабатывать их, даже если он не знает, как это делать. Таким образом, если программист просто создаст новое исключение, не упаковывая исходное, трассировка стека, принадлежащая исходному исключению, будет потеряна. Здесь пригодятся исключения во время выполнения. Поскольку все исключения во время выполнения можно обрабатывать в одном месте, программисты могут писать меньше кода. С другой стороны, поскольку проверенные исключения должны быть перехвачены, для программиста это не является сюрпризом. Она всегда будет знать, какое проверенное исключение может быть выброшено определенным методом. В отличие от этого, различные исключения во время выполнения могут быть вызваны без ведома программиста.

Рекомендуемые: