Runtime və İOException JAVA

Posted on 2023-03-30 04:21:49

Runtime və İOException - JAVA

Chat-GPT ilə müzakirə elədik.

Söhbətimizdən bir parça…

Müəllim müzakirələr aparır, adamda maraq yaradır ki, özün araşdırasan. Tənbəl bir insan olaraq, gündəmin verdiyi imkanlardan istifadə edərək müzakirəni çıxardım Chat-GPT ilə öz arama.

Dedim hörmətli Chat-GPT, de görüm:

- Bax bu Runtime Exceptionun adını niyə “Runtime” qoyublar?

Qısa desək dediyini:

- Çünki xəta runtime vaxtında baş verir (it occurs during the execution or runtime of a program) və gözlənilməz olsa da təxmini bilinir hansı hallar ola bilər ona görə JVM vasitəsi ilə avtomatik tutulur və əlavə handle (həll) etməyə məcburiyyət yoxdur ( yəni unchecked exception olacaq)

Biraz belə danışdıq və müəyyən etdik ki, İOException Runtime exceptiona aid deyil, ən azından ona görə ki, İOException — checked exceptiondır və throws və ya try catch istifadəsi zəruridir. Lakin eyni zamanda onun runtime vaxtında baş verməsini də mənə dedi. Əlbəttə bunu deyən kimi, sualım yarandı ki, “Niyə o zaman Runtime Exception-u checked və unchecked hissələrə bölüb daxilində Exceptionları ayrı-ayrı qruplara bölməyiblər?!”

Chat-GPT də çox fikirləşmədən, elə bil 100 ildir mənim sualımı gözləyirdi, cavab verdi:

- Əslində checked və unchecked arasında fərq xətanın harada handle olmasındadır. Yəni compile zamanı həll olunması mümkün olmayan, amma mütləq olan xətaları checked edək ki, developer onları özü try-catch edib həll etsin. Ona görə də xəta runtime zamanı baş verəcəksə də, onun handle olunması JVM tərəfindən əvvəldən mümkün olmadığına görə avtomatik onları developerin özünün tərəfindən tutub compile zamanı həll etməsini istəyir.

Həqiqətən də RuntimeExceptiona aid olan exceptionları unchecked edən, onların artıq JVM tərəfindən handle (həll) olunmasıdır. İzahını versəm, elə çıxır ki, artıq bütün dünya bilir ki, sıfıra bölmək olmaz. Bu faktı bilərək, onun developer tərəfindən həll olunması tələb etməkdənsən, elə dərhal həllini JVM-a həvalə etmək daha məntiqlidir. Bəlkədə RuntimeExceptiona aid olmayan artıq bir çox runtime zamanı baş verən Exceptionlar üçün hazır throw-lar yazıb eyni sinifə aid eləmək olardı.

Sonda:

RuntimeException adlanan sinif (class) reallıqda bütün runtime olan sinifləri əhatə etmir və nəzərdə tutduğu compile səviyəsində artıq handle (həll) olunmuş, yenidən handle etmək məcburiyəti olmayan exceptionlardır.

Ümid edirəm fikirimi və öyrəndiklərimi düzgün çatdıra bildim. Müəllimə bir daha çox sağ ol deyirəm. Ümid edirəm səhifənin tag edilməsindən narazı olmaz.

Məqalələrin çox olmasını istəyirsinizsə bizim kanalımıza abunə olun!