Middle
Реците о механизму изузетака у Јави.
sobes.tech АИ
Одговор од АИ
Механизам за изузетке у Јави се користи за обраду грешака и других изузетних ситуација које настају током извршавања програма.
Главни елементи механизма изузетака:
- Изузетак (Exception): Објекат који представља догађај који нарушава нормалан ток извршавања програма.
- Блокови
try,catch,finally: Користе се за обраду изузетака.try: Блок кода у којем може доћи до изузетка.catch: Блок кода који се извршава ако уtryблоку настане изузетак од одређеног типа.finally: Блок кода који се увек извршава, без обзира да ли је дошло до изузетка или не. Користи се за ослобађање ресурса.
- Кључна реч
throw: Користи се за јасно креирање и бацање изузетка. - Кључна реч
throws: Користи се у сигнатури методе за објављивање типова изузетака које метода може бацити.
Јерихија изузетака у Јави:
Throwable: Базна класа за све изузетке и грешке.Error: Представља озбиљне проблеме од којих програм обично не може да се опорави (нпр.OutOfMemoryError).Exception: Представља изузетке које програм може ухватити и обрадити.RuntimeException(Unchecked Exceptions): Изузеци који не захтевају јасну обраду или објављивање у сигнатури методе (нпр.NullPointerException,ArrayIndexOutOfBoundsException).- Checked Exceptions: Изузеци који морају бити или обрађени помоћу
try-catchблока или објављени помоћуthrowsу сигнатури методе (нпр.IOException,FileNotFoundException).
Пример обраде изузетка:
public class ExceptionExample {
public static void main(String[] args) {
try {
int result = divide(10, 0);
System.out.println("Резултат: " + result);
} catch (ArithmeticException e) {
// Обрада изузетка ArithmeticException
System.err.println("Грешка: Дељење нула није дозвољено.");
System.err.println("Детаљи изузетка: " + e.getMessage());
e.printStackTrace(); // Испис стека позива
} finally {
// Овај блок се увек извршава
System.out.println("Извршен је блок finally.");
}
}
public static int divide(int a, int b) {
// Може изазвати ArithmeticException ако је b = 0
return a / b;
}
}
Пример коришћења throws:
import java.io.FileReader;
import java.io.IOException;
public class ThrowsExample {
public static void readFile(String filename) throws IOException {
// Може изазвати IOException
FileReader reader = new FileReader(filename);
// Даља работа са фајлом
}
public static void main(String[] args) {
try {
readFile("непостојећи_фајл.txt");
} catch (IOException e) {
System.err.println("Грешка при читању фајла: " + e.getMessage());
}
}
}