Java'da hangi istisna türü işlenemez?
sobes.tech yapay zeka
AI'dan gelen yanıt
Hata.
Java, istisnaları (Throwable) üç ana türe ayırır:
- Kontrol edilen İstisnalar: Zorunlu işlem veya metod imzasında bildirilmesi gerekir (
throws). - Kontrol edilmeyen İstisnalar (Çalışma zamanı İstisnaları): Zorunlu işlem gerektirmez. Genellikle program mantığındaki hataları gösterir.
- Hatalar: Java sanal makinesi veya sistem kaynaklarıyla ilgili ciddi sorunları temsil eder. Bunlar uygulama seviyesinde işlenemez, çünkü kodun kendisiyle ilgili sorun değildir.
Error örnekleri:
OutOfMemoryError: Java sanal makinesi belleği ayıramadı.StackOverflowError: Yığın taşması (çok derin özyineleme).InternalError: Java Sanal Makinesi iç hatası.
Error ile try-catch kullanmak anlamlı değildir, çünkü bu hatalar genellikle uygulamanın başarıyla kurtulamayacağı durumları gösterir. Bunun yerine, Error oluştuğunda uygulama genellikle sona erer.
Teknik olarak catch (Error e) yazmak mümkün olsa da, bu kod kötü bir uygulama olarak kabul edilir ve temel sorunu çözmez.
try {
// OutOfMemoryError oluşturabilecek kod
List<Object> list = new ArrayList<>();
while (true) {
list.add(new Object());
}
} catch (OutOfMemoryError e) {
// Bu blok çalışır, ama kurtulamazsınız,
// çünkü sistemde yeterli bellek yok.
System.err.println("Bellek yetersiz! Uygulama muhtemelen sona erecek.");
// Buradaki sonraki işlemler faydasız veya SecurityException çıkarabilir
} catch (Exception e) {
// Diğer istisnaların işlenmesi
e.printStackTrace();
}
QA otomasyonunda, test sırasında bir Error oluşursa, bu genellikle test ortamıyla ilgili bir sorunu, JVM yapılandırmasının yanlış olduğunu veya uygulamada kritik bir hatayı gösterir ve beklenen, işlenebilir bir istisnadan çok, ciddi bir arıza olduğunu gösterir. Bu tür durumlar, test kodunun dışında kök nedenin araştırılmasını gerektirir.