OCA Java imtahan mövzuları

try-catch-finally

Using a try Statement

Exceptionu handle (idarə) etmək üçün try ifadəsindən istifadə edilir. Sintaksisi belədir*:

syntax-try-statement

Try blokunda kodlar normal icra olunur. Əgər exception baş verərsə, bu zaman try blokunun icrası dayanır və icra catch blokuna keçir. Əgər try blokunda heç bir exception baş verməsə, o zaman catch bloku (“block” və ya “clause“, hər ikisi işlədilə bilər) icra olunmur.

try ifadəsi də metodlar kimidir, trycatch bloklarının tərkibinə bir ifadə də daxil olsa belə yenə də mötərizə tələb edir:

try                  // DOES NOT COMPILE
    test3();
catch(Exception e)   // DOES NOT COMPILE
    System.out.println("I am catch block");

Compile olunması üçün mötərizələr əlavə olunmalıdır:

try {                 
    test3();
} catch(Exception e){   
    System.out.println("I am catch block");
}

try bloku təklikdə işlədilə bilməz, ondan sonra ya catch, ya da finally bloku gəlməlidir:

try {         // DOES NOT COMPILE
    test3();
}

 

 

Adding a finally Block

finally bloku try ifadəsinin sonunda gəlir və sintaksisi belədir**:

syntax-try-statement-with-finally

Əgər exception baş verərsə, finally bloku catch blokundan sonra, yox əgər baş verməsə try blokundan sonra icra edilir. Amma catch blokundan fərqli olaraq finally bloku exception baş verib verməməsindən asılı olmayaraq həmişə icra edilir (bir istisnadan başqa).

Qeyd etdik ki, try bloku təklikdə işlədilə bilməz, ancaq try-with-resources catch və ya finally bloku olmadan təklikdə işlənə bilər. Lakin try-with-resources OCP imtahanının mövzusudur, OCA imtahanındakı nümunələrdə try bloku mütləq catch və ya finally bloku ilə birlikdə işlədilməlidir və catch bloku finally blokundan sonra gələ bilməz:

try {
    test3();
} finally {
    System.out.println("I am finally block");
} catch(Exception e) {    // DOES NOT COMPILE
    System.out.println("I am catch block");
}

try {   // DOES NOT COMPILE
    test3();
}

try {
    test3();
} finally {
    System.out.println("I am finally block");
}

finally blok varsa, catch bloku tələb olunmur.

Biz qeyd etmişdik ki, finally blok həmişə icra olunur, amma bir istisna var. Əgər try və ya catch blokunda System.exit(0); çağırılarsa, proqram sonlanır və finally blok icra olunmur. Amma System.exit(0); -dən sonra yazılan kodlar “unreachable code” kimi compile xətası vermir, baxmayaraq ki, System.exit(0); -dən sonra yazılan heç bir kod icra olunmur.

 

[topics lang=az]

 

*,** “OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808”, by J.Boyarsky & S.Selikoff

 

About the author

Mushfiq Mammadov

Leave a Comment


The reCAPTCHA verification period has expired. Please reload the page.

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.