Middle
Java'da istisna mekanizmasından bahsedin.
sobes.tech yapay zeka
AI'dan gelen yanıt
Java'da istisna mekanizması, programın çalışması sırasında oluşan hataları ve diğer istisnai durumları işlemek için kullanılır.
İstisna mekanizmasının temel öğeleri:
- İstisna (Exception): Programın normal akışını bozan olayları temsil eden nesne.
try,catch,finallyblokları: İstisnaları işlemek için kullanılır.try: İstisna oluşabilecek kod bloğu.catch:trybloğunda belirli bir türde istisna oluşursa çalışan kod bloğu.finally: Her zaman çalışan, istisna olup olmamasına bakılmaksızın çalışan kod bloğu. Kaynakları serbest bırakmak için kullanılır.
throwanahtar kelimesi: Açıkça bir istisna oluşturmak ve atmak için kullanılır.throwsanahtar kelimesi: Bir metodun imzasında kullanılır ve metodun atabileceği istisna türlerini belirtir.
Java'da istisna hiyerarşisi:
Throwable: Tüm istisnalar ve hatalar için temel sınıf.Error: Programın genellikle kurtulamayacağı ciddi sorunları temsil eder (örneğin,OutOfMemoryError).Exception: Programın yakalayabileceği ve işleyebileceği istisnaları temsil eder.RuntimeException(Unchecked Exceptions): Açıkça işleme veya bildirime gerek olmayan istisnalar (örneğin,NullPointerException,ArrayIndexOutOfBoundsException).- Checked Exceptions:
try-catchbloğu ile işlenmeli veyathrowsile bildirilmeli (örneğin,IOException,FileNotFoundException).
İstisna işleme örneği:
public class ExceptionExample {
public static void main(String[] args) {
try {
int result = divide(10, 0);
System.out.println("Sonuç: " + result);
} catch (ArithmeticException e) {
// ArithmeticException istisnasını işleme
System.err.println("Hata: Sıfıra bölme izin verilmez.");
System.err.println("İstisna detayları: " + e.getMessage());
e.printStackTrace(); // çağrı yığınını gösterir
} finally {
// Bu blok her zaman çalışır
System.out.println("Finally bloğu çalıştı.");
}
}
public static int divide(int a, int b) {
// b = 0 ise ArithmeticException atabilir
return a / b;
}
}
throws kullanımı örneği:
import java.io.FileReader;
import java.io.IOException;
public class ThrowsExample {
public static void readFile(String filename) throws IOException {
// IOException atabilir
FileReader reader = new FileReader(filename);
// Dosya ile daha fazla çalışma
}
public static void main(String[] args) {
try {
readFile("mevcut_olmayan_dosya.txt");
} catch (IOException e) {
System.err.println("Dosya okuma hatası: " + e.getMessage());
}
}
}