Проверенное и непроверенное исключение: разница и сравнение

Проверка исключений — одна из самых важных вещей в программировании и тестировании программного обеспечения. Checked And Unchecked Exception останавливает запуск программы, когда она пытается отловить ошибку или ошибку.

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

Основные выводы

  1. Компилятор проверяет проверенные исключения во время компиляции и должен обрабатываться программистом с помощью блока try-catch или ключевого слова throws, тогда как непроверенные исключения возникают во время выполнения и не требуют обработки.
  2. Проверенные исключения используются для исправимых ошибок, таких как файл не найден, а непроверенные исключения используются для неисправимых ошибок, таких как нехватка памяти или исключения с нулевым указателем.
  3. Проверенные исключения являются частью сигнатуры метода, а непроверенные исключения — нет.

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

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

Проверено vs Не отмечено

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

Если код, вызвавший исключение, не был протестирован должным образом, это может привести к странным исключительным ошибкам Unchecked, которые может быть трудно найти и исправить.

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

Сравнительная таблица

Параметры сравненияПроверено исключениеНепроверенное исключение
ОпределениеПроверенные исключения — это те, которые должны быть перехвачены и обработаны операторами checks().Неотмеченные исключения вообще не нужно перехватывать или обрабатывать.
ВхождениеБлок catch должен обрабатывать проверенные исключения во время компиляции. Неперехваченные исключения, также известные как исключения времени выполнения, являются непроверенными исключениями.
Обработка ошибокОтмеченное исключение останавливает выполнение программы до тех пор, пока она не попытается отловить ошибку или ошибку. Ответственность за то, чтобы таких ошибок никогда не возникало, лежит на программисте.
Классы исключенийУ него есть исключительные классы.У него нет исключительных классов, или он не является основной частью исключительных классов.
ПримерOutOfMemoryError, NullPointerException и StackOverflowError.Индексаутофбаундсексцептион

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

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

Читайте также:  Мультимедиа против гипермедиа: разница и сравнение

Это означает, что код, следующий за оператором throw, не будет выполняться, если ни один блок catch не обрабатывает исключение.

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

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

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

Когда возникает исключение, оно передается отладчику в Затмение или в операционную систему, которая затем нормально завершает программу. Операционная система выводит трассировку стека.

Трассировка стека предоставляет информацию для каждого вызова метода в том порядке, в котором они были вызваны. Это позволяет программисту найти, где в коде или где в потоке выполнения кода произошло исключение.

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

Непроверяемые исключения позволяют программистам программировать более гибко и эффективно. Java был разработан, чтобы позволить программистам создавать приложения, которые эффективно используют ресурсы и избегают возникновения взаимоблокировок.

Непроверенные исключения могут быть устранены тщательным проектированием и практикой кодирования. Однако все исключения, кроме NullPointerException в коде Java, считаются непроверенными.

Непроверенные исключения вообще не нужно перехватывать или обрабатывать.

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

Читайте также:  GCC против компилятора CC: разница и сравнение

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

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

Для приложения вполне допустимо дважды считывать одни и те же данные в двух разных потоках без каких-либо негативных последствий для производительности или стабильности системы.

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

  1. Проверенные исключения — это те, которые должны быть перехвачены и обработаны операторами checks (), тогда как непроверенные исключения вообще не должны перехватываться или обрабатываться.
  2. Checked Exceptions должны обрабатываться блоком catch во время компиляции, тогда как Uncaught Exceptions, также известные как исключения во время выполнения, являются Unchecked Exceptions.
  3. Проверенное исключение останавливает выполнение программы до тех пор, пока она не попытается поймать ошибку или ошибку, тогда как за непроверенные исключения отвечает программист, чтобы гарантировать, что эти ошибки никогда не возникнут.
  4. Checked Exception имеет исключительные классы, тогда как Unchecked Exceptions не имеют каких-либо исключительных классов или не являются основной частью исключительных классов.
  5. Примером проверенного исключения может быть OutOfMemoryError, NullPointerException и StackOverflowError, тогда как примером непроверенного исключения может быть IndexOutOfBoundsException.

Рекомендации

  1. https://ieeexplore.ieee.org/abstract/document/4343929/
  2. https://link.springer.com/article/10.1023/A:1010020917337

Последнее обновление: 11 июня 2023 г.

точка 1
Один запрос?

Я приложил столько усилий, чтобы написать этот пост в блоге, чтобы предоставить вам ценность. Это будет очень полезно для меня, если вы подумаете о том, чтобы поделиться им в социальных сетях или со своими друзьями/родными. ДЕЛИТЬСЯ ♥️

8 мыслей о «Проверенном и непроверенном исключении: разница и сравнение»

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

    Ответить
  2. Объяснение в статье того, что проверенные исключения представляют собой исправимые ошибки, например файл не найден, а непроверенные исключения представляют собой неисправимые ошибки, например, нехватка памяти, актуально и подчеркивает важность различия между ними.

    Ответить
  3. В статье представлена ​​подробная информация о проверенных и непроверяемых исключениях, поясняется, чем они отличаются и какие функции выполняют. В нем также объясняется, как компилятор обрабатывает проверенные исключения во время компиляции, а также ответственность программиста за обработку непроверенных исключений.

    Ответить
  4. Обсуждение проверенных исключений, требующих блока try-catch или ключевого слова throws, в то время как непроверенные исключения возникают во время выполнения и не требуют обработки, является познавательным. В нем подчеркиваются потенциальные сценарии возникновения каждого типа исключений.

    Ответить
  5. Подробное объяснение того, что проверенные исключения являются частью сигнатуры метода, а непроверенные исключения — нет, дает ценную информацию о природе этих исключений. Статья эффективно передает различие между ними.

    Ответить
  6. В статье предлагается подробный анализ проверенных и непроверяемых исключений, подчеркивая их значение и влияние на выполнение программы. Четкое описание помогает понять их роль в разработке и тестировании программного обеспечения.

    Ответить
  7. В статье представлена ​​подробная сравнительная таблица, в которой кратко изложены различия между проверяемыми и непроверяемыми исключениями. Таблица упрощает понимание двух типов исключений, их возникновения и способов их обработки.

    Ответить
  8. Подробная информация о проверенных и непроверенных исключениях, включая определение, возникновение и обработку ошибок, служит ценным ресурсом для тех, кто хочет углубить свои знания в области тестирования программного обеспечения и принципов программирования.

    Ответить

Оставьте комментарий

Хотите сохранить эту статью на потом? Нажмите на сердечко в правом нижнем углу, чтобы сохранить в свой собственный блок статей!