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

Исключение против ошибки

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

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

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

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

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

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

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