Рекомендуем, 2024

Выбор редакции

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

«Throwable» является родительским классом классов Error и Exception. Класс «RuntimeException» и его подклассы, класс «Error» и его дочерние классы являются «непроверенными исключениями», тогда как остальные подклассы класса «Exception», за исключением «RuntimeException», являются проверенными исключениями. Основное различие между проверенным и непроверенным исключением заключается в том, что проверенные исключения проверяются компилятором, тогда как компилятор не проверяет непроверенные исключения .

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

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

Основа для сравненияПроверено исключениеНепроверенное исключение
основнойКомпилятор проверяет проверенное исключение.Компилятор не проверяет исключение Unchecked.
Класс исключенияЗа исключением класса «RuntimeException» все дочерние классы класса «Exception», а также класс «Error» и его дочерние классы являются Checked Exception.Класс «RuntimeException» и его дочерние классы являются «непроверенными исключениями».
обращениеЕсли мы не обработаем проверенное исключение, тогда объекты компилятора.Даже если мы не обработаем непроверенное исключение, компилятор не возражает.
компиляцияПрограмма не компилируется, если в программном коде есть необработанное проверенное исключение.Программа успешно компилируется, даже если в программном коде есть необработанное непроверенное исключение.

Определение проверенного исключения

Проверенные исключения - это те исключения, которые проверяются компилятором для плавного выполнения программы. Компилятор проверяет, может ли программа обработать проверенное исключение или нет. Если код не может обработать исключение, возникает ошибка компиляции. Все подклассы класса «Exception», за исключением класса RuntimeException, являются проверенными исключениями.
Давайте изучим проверенное исключение на примере.

 импорт java.io. *; class Example {public static void main (String args []) {FileInputStream fis = null; fis = new FileInputStream ("B: /myfile.txt"); // Этот конструктор FileInputStream (File filename) генерирует исключение FileNotFoundException, которое является проверенным исключением. int k; while ((k = fis.read ())! = -1) {// Метод read () класса FileInputStream также выдает проверенное исключение: IOException. System.out.print ((символ) к); } fis.close (); // Метод close () закрывает поток ввода файла, который он генерирует IOException. }} 

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

Определение непроверенного исключения

Непроверенные исключения - это те исключения, которые не проверяются компилятором. Компилятор успешно компилирует программу, даже если исключения не обрабатываются кодом. Класс «Error» и его дочерние классы, класс «Runtime» и его подклассы являются непроверенными исключениями.

Давайте посмотрим на пример непроверенного исключения.

 class Example {public static void main (String args []) {int arr [] = {1, 2, 3, 4, 5}; System.out.println (обр [7]); // ArrayIndexOutOfBoundsException. }} 

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

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

  1. Проверенные исключения находятся в знании компилятора, тогда как непроверенные исключения не находятся в знании компилятора.
  2. За исключением классов RuntimeException и Error все классы проверяются как исключение. С другой стороны, классы RuntimeException и Error являются непроверенными исключениями.
  3. Если проверенные исключения не обрабатываются кодом, тогда объекты компилятора. С другой стороны, если мы не обработаем непроверенные исключения в коде, компилятор не будет возражать.
  4. Если в коде присутствуют проверенные исключения, код не будет компилироваться, тогда как, даже если непроверенные исключения не обрабатываются кодом, компилятор все еще компилирует код.

Замечания :

Обе проверенные или непроверенные исключения обязательно происходят во время выполнения. Они проверяются или не проверяются компилятором только во время компиляции.

Заключение:

Обе проверенные и непроверенные исключения должны быть обработаны для гладкого выполнения программы.

Top