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 iseennasttryplokis. - Pärast
tryploki lõpetamist täidetaksefinallyplokk, kus uuesti kutsutaksework().
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.