Разница между исключением и ошибкой

Разница между исключением и ошибкой
Разница между исключением и ошибкой

Видео: Разница между исключением и ошибкой

Видео: Разница между исключением и ошибкой
Видео: Java SE. Урок 29. Исключения, ошибки и их иерархия. Блоки try, catch, finally 2024, Июль
Anonim

Исключение и ошибка

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

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

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

Что такое ошибка?

Ошибка - это состояние, которое можно считать неисправимым, например, когда программе требуется объем памяти, превышающий доступный. Эти ошибки не могут быть обработаны во время выполнения. Если произойдет ошибка, программа завершится. В Java ошибки наследуются от класса Throwable. Ошибки обычно обозначают серьезные проблемы, которые программист (или приложение) не должен пытаться обнаружить. Ошибки - это просто ненормальные условия, которые никогда не ожидаются при нормальных обстоятельствах и, следовательно, никогда не предвидятся. Например, такими ошибками являются OutOfMemoryError, StackOverflowError и ThreadDead. Методы никогда не должны иметь обработчиков ошибок.

В чем разница между исключением и ошибкой?

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

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