Программа Java для обработки иерархий исключений

Опубликовано: 1 Декабря, 2021

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

Обработка исключений: процесс обработки исключений известен как обработка исключений.

Иерархия исключений: класс объекта - это родительский класс для всех классов 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 и многому другому, см. Полный курс подготовки к собеседованию .