Программа Java для обработки иерархий исключений
Исключения - это события, которые происходят из-за ошибки программиста или ошибки машины, которая вызывает нарушение нормального потока выполнения программы и завершает программу.
Обработка исключений: процесс обработки исключений известен как обработка исключений.
Иерархия исключений: класс объекта - это родительский класс для всех классов java и всех ошибок или объектов исключений, унаследованных от класса throwable. Класс throwable имеет два подкласса Errors и Exception.
Класс ошибок: этот класс содержит те ошибки, с которыми трудно справиться. Они возникают во время выполнения программы, например StackOverflowError, OutOfMemoryError и т. Д.
- StackOverflowError : эта ошибка возникает из-за входящего условия в рекурсии и использования бесконечного цикла в программе. Эта причина превышает объем памяти стека и вызывает ошибку StackOverflowError в программе.
StackOverflowError:
Ява
// Java Program to Handle the exception hierarchies import java.io.*; class GFG { static check( void int n) { if (n == 0 ) { return ; } check(n + 1 ); } public static void main(String[] args) { check( 3 ); } } |
Класс исключения:
Этот класс содержит все исключения, которые могут быть легко обработаны. Есть два унаследованных подкласса, один из которых - исключение времени выполнения (исключенное исключение) и отмеченное исключение.
1. Проверяемые исключения : эти исключения являются подклассом класса Exception. Эти типы исключений возникают во время компиляции программы javac. Эти исключения могут обрабатываться блоком try-catch, в противном случае программа выдаст ошибку компиляции. ClassNotFoundException, IOException, SQLException и т. Д. Являются примерами проверенных исключений.
Исключение ввода-вывода : эта программа выдает исключение ввода-вывода из-за того, что исключение FileNotFoundException является проверенным исключением в Java. В любое время, когда мы хотим прочитать файл из файловой системы, Java заставляет нас обрабатывать ошибочные ситуации, когда файл отсутствует в заданном месте.
Предположение: считайте, что файл myfile.txt не выходит
Выполнение:
Ява
// Java Program to Handle the exception hierarchies import java.io.*; class GFG { public static void main(String args[]) { // this file does not exist in the location try { FileInputStream GFG = new FileInputStream( "C:/myfile.txt" ); } catch (Exception e) { System.out.println( "File not found" ); } } } |
Файл не найден
2. Непроверенное исключение :
Эти типы исключений возникают во время выполнения программы. Это исключения, которые не проверяются компилятором во время компиляции. В исключениях Java в классах Error и RuntimeException не отмечены исключения. Это исключение возникает из-за плохого программирования. Исключения времени выполнения, такие как IndexoutOfBoundException, Nullpointer Exception и т. Д., Можно обрабатывать с помощью блока Try-Catch.
(Массив) IndexoutOfBoundException : это исключение возникает из-за доступа к индексу, большему и равному размеру длины массива. Программа будет автоматически завершена после этого исключения.
Выполнение:
Ява
// Java Program to Handle the exception hierarchies import java.io.*; class GFG { public static void main(String[] args) { int a[] = { 1 , 2 , 3 , 4 , 5 }; try { System.out.println( a[ 5 ]); // accessing the elements of the out // of index of the arrat } catch (ArrayIndexOutOfBoundsException e) { // executes when index out of bound occurs System.out.println( "Out of index please check your code" ); } } } |
Не в индексе, пожалуйста, проверьте свой код
Множественные блоки перехвата: иногда в программе конкретный код может генерировать несколько объектов исключений, которые можно обрабатывать с помощью нескольких блоков перехвата в одном блоке попытки.
Формат:
Ява
try { // Code where exception can occur } catch (ExceptionA e1) { // code that executes if Exception of A occurs } catch (ExceptionB e2) { // code that executes if Exception of B occurs. } |
Обработка исключений ArithmeticException и IndexoutOfBound с использованием нескольких блоков catch.
Ява
import java.io.*; class GFG { public static void main (String[] args) { try { int number[] = new int [ 10 ]; number[ 10 ] = 30 / 0 ; } catch (ArithmeticException e) { System.out.println( "Zero cannot divide any number" ); } catch (ArrayIndexOutOfBoundsException e) { System.out.println( "Index out of size of the array" ); } } } |
Ноль не может делить любое число
Вниманию читателя! Не прекращайте учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .