Junior — Middle
Əgər catch istisna qaytarırsa və finally "finally" sətirini qaytarırsa, try blokunda sıfıra bölmə zamanı tərtib xətası baş verərmi?
sobes.tech Süni İntellekt
AI-dan cavab
Java-da tam ədədi tiplər üçün sıfıra bölmə ArithmeticException istisnasını törədir. Əgər bu try blokunda baş verərsə və catch blokunda başqa bir istisna atılırsa və finally blokunda return əmri olsa, dəqiq finally-dən alınan dəyər qaytarılacaq və istisnalar basdırılacaq.
Nümunə:
public String test() {
try {
int a = 1 / 0; // ArithmeticException
} catch (Exception e) {
throw new RuntimeException("catch-də xəta");
} finally {
return "finally";
}
}
Bu kodda metod "finally" sətirini qaytaracaq və istisna atmayacaq, çünki finally-dəki return try və catch-dən gələn istisnaları üstələyir. Tərtib xətası baş verməz, lakin bu davranış xətalar haqqında məlumatın itirilməsinə səbəb ola bilər və pis təcrübə hesab olunur.