Wczoraj dostałem ten kubek na szkoleniu. Mogli się bardziej postarać - złapać Throwable i chociaż zalogować ten wyjątek ¯_(ツ)_/¯ #programista15k #programowanie #java
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
@uczeniemaszyn: W #java też tak można. Try bez catcha z blokiem finally. Np żeby upewnić się że jakiś zasób na pewno będzie zamknięty, a obsługa wyjątku nas nie interesuje.
@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.
Aktywne Wpisy
18+
Zawiera treści 18+
Ta treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
@wsmith84: jaki wyjątek? Tam nie ma żadnego wyjątku ;) Pusty blok "try" zazwyczaj nie rzuca wyjątków :D
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ę
@MikelThief: jakie zatem ma zastosowanie?
@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: