Sobes.tech
Senior

```java public class DoWork { public static void main(String[] args) { work(); } public static void work() { try { work(); } finally { work(); } } } ```

sobes.tech AI

Vastus AI-lt

See kood sisaldab lõpmatut rekursiooni, mis viib virna üleujutuseni (StackOverflowError).

Selgitus:

  • Meetod work() kutsub iseennast try plokis.
  • Pärast try ploki lõpetamist täidetakse finally plokk, kus uuesti kutsutakse work().

Nii tekib iga work() kutse puhul kaks uut work() kutset: üks try-s ja teine finally-s, mis viib eksponentsiaalse kasvuni ja kiire virna üleujutuseni.

Näide vea kohta käivitamisel:

Exception in thread "main" java.lang.StackOverflowError
    at DoWork.work(DoWork.java:...)
    ...

Sellist koodi ei tohi kasutada ilma rekursioonist väljumise tingimusteta.