Wpis z mikrobloga

pusty blok try-catch z finally ma swoje użycie, tylko trzeba dokładnie przeczytać jak działa ;)


@MikelThief: może to zależy od języka... w C# nie jest mi znane żadne zastosowanie pustego bloku "try". Pusty blok "catch" bardzo sporadycznie może się przydać, ale jest generalnie złą praktyką. O ile mi wiadomo na etapie kompilacji (w szczególności jeśli jest włączona optymalizacja) puste bloki "try" są w ogóle wywalane z bytecode. Finally oczywiście wykona się
@uczeniemaszyn: w Javie niestety nie wiem, natomiast w .NET (nie C# ;)) pusta konstrukcja try-catch z blokiem finally jest używana wtedy kiedy chcemy się upewnić, że kod zostanie wykonany nawet w przypadku kiedy wątek który wykonuje kod ma zostać zatrzymany. Kiedy jest zatrzymywany, to przed faktycznym zatrzymaniem wykona się blok finally.
w Javie niestety nie wiem, natomiast w .NET (nie C# ;)) pusta konstrukcja try-catch z blokiem finally jest używana wtedy kiedy chcemy się upewnić, że kod zostanie wykonany nawet w przypadku kiedy wątek który wykonuje kod ma zostać zatrzymany. Kiedy jest zatrzymywany, to przed faktycznym zatrzymaniem wykona się blok finally.


@MikelThief: dzięki za odpowiedź. Od lat piszę w C# ale nie wiedziałem tego. W międzyczasie znalazłem jeszcze dodatkowego posta na stacku:
@wsmith84: można ale w większości przypadków nie powinno bo łapane są wtedy też Errory. Jak widzę, że ktoś łapie Trowable bez żadnego powodu to stwierdzam, że po prostu nie umie łapać wyjątków
@shadock kiedyś rekrutowalem gościa, który na pytanie związane z debugowaniem odpowiedział, że nie używa debuggera. Kod który pisze jest zazwyczaj na tyle dobry, że nie trzeba. CV poszlo do /dev/null ( ͡ ͜ʖ ͡) To byłeś Ty? ( ͡º ͜ʖ͡º)
@RHarryH niektóre frameworki dziedzicza klasy wyjątków po Throwable. W takich przypadkach zasadne jest ich złapanie, choćby w celu zalogowania i nie myślenia o konkretnym typie wyjątku. Oczywiście z Error nie zrobimy nic np. z brakiem pamieci.