Obsługa wyjątków to proces reagowania na wystąpienie anomalnych lub wyjątkowych warunków wymagających specjalnego przetwarzania - często zmieniającego normalny przebieg wykonywania programu.
Istnieje wiele dobrze znanych najlepszych praktyk dotyczących obsługi wyjątków w izolacji. Wiem wystarczająco dobrze, co należy robić, a czego nie robić, ale sprawy komplikują się, jeśli chodzi o najlepsze praktyki lub wzorce w większych środowiskach. „Rzuć wcześnie, złap późno” - słyszałem wiele razy i nadal mnie to myli. Dlaczego powinienem …
Czy to jest antypattern? Czy jest to dopuszczalna praktyka? try { //do something } catch (Exception e) { try { //do something in the same line, but being less ambitious } catch (Exception ex) { try { //Do the minimum acceptable } catch (Exception e1) { //More try catches? } …
Klasyczny sposób programowania to try ... catch. Kiedy stosować trybez catch? W Pythonie następujące elementy wydają się zgodne z prawem i mogą mieć sens: try: #do work finally: #do something unconditional Jednak kod nic nie catchzrobił. Podobnie można by pomyśleć w Javie: try { //for example try to get a …
Przeczytałem jakiś kod kolegi i stwierdziłem, że często łapie on różne wyjątki, a następnie zawsze zgłasza „RuntimeException”. Zawsze myślałem, że to bardzo zła praktyka. Czy się mylę?
Ponad 10 lat temu w szkole uczyli cię używania specyfikatorów wyjątków. Ponieważ moje doświadczenie jest jednym z nich, programiści Torvaldish C, którzy uparcie unikają C ++, chyba że są do tego zmuszeni, trafiam tylko do C ++ sporadycznie, a kiedy to robię, nadal używam specyfikatorów wyjątków, ponieważ tego się nauczono. …
Bardzo doceniam nowe funkcje Java 8 dotyczące lambd i interfejsów metod domyślnych. Nadal jednak nudzą mnie sprawdzone wyjątki. Na przykład, jeśli chcę tylko wymienić wszystkie widoczne pola obiektu, chciałbym po prostu napisać: Arrays.asList(p.getClass().getFields()).forEach( f -> System.out.println(f.get(p)) ); Ponieważ jednak getmetoda może zgłosić sprawdzony wyjątek, co nie jest zgodne z Consumerumową …
Wiele współczesnych języków zapewnia bogate funkcje obsługi wyjątków , ale język programowania Swift firmy Apple nie zapewnia mechanizmu obsługi wyjątków . Pogrążony w wyjątkach, tak jak ja, mam problem z otuleniem się, co to znaczy. Swift ma asercje i oczywiście zwraca wartości; ale mam problem z wyobrażeniem sobie, w jaki …
Wiem, że mogę zgłosić wyjątek od konstruktora w PHP, ale czy powinienem to zrobić? Na przykład, jeśli wartość parametru nie jest taka, jak się spodziewałem. A może powinienem odłożyć zgłoszenie wyjątku do momentu wywołania metody Jakie są zalety i wady w obu przypadkach?
To pytanie ma na celu zastosowanie do dowolnego języka programowania OO, który obsługuje obsługę wyjątków; Używam C # tylko w celach ilustracyjnych. Wyjątki są zwykle zgłaszane, gdy pojawia się problem, którego kod nie może natychmiast obsłużyć, a następnie przechwytywane w catchklauzuli w innym miejscu (zwykle zewnętrznej ramce stosu). P: Czy …
W różnych językach (przynajmniej Java, myślisz również C #?) Możesz robić takie rzeczy if( condition ) singleStatement; while( condition ) singleStatement; for( var; condition; increment ) singleStatement; Więc kiedy mam tylko jedną instrukcję, nie muszę dodawać nowego zakresu { }. Dlaczego nie mogę tego zrobić za pomocą try-catch? try singleStatement; …
Przykład: foobar = new InputStreamReader(p.getInputStream(), "ISO-8859-1"); Ponieważ kodowanie jest zakodowane na stałe i poprawne, konstruktor nigdy nie zgłosi wyjątku UnsupportedEncodingException zadeklarowanego w specyfikacji (chyba że implementacja Java jest zepsuta, w którym to przypadku i tak się zgubiłem). W każdym razie Java zmusza mnie do zajęcia się tym wyjątkiem. Obecnie tak …
Zastanawiam się, jakie są zalety Maybe monady nad wyjątkami? Wygląda na Maybeto, że jest to po prostu jawny (i zajmujący mało miejsca) sposób try..catchskładni. aktualizacja Pamiętaj, że celowo nie wspominam o Haskell.
Analizatory kodu statycznego, takie jak Fortify, „narzekają”, gdy wyjątek może zostać zgłoszony do finallybloku, mówiąc to Using a throw statement inside a finally block breaks the logical progression through the try-catch-finally. Zwykle się z tym zgadzam. Ale ostatnio natknąłem się na ten kod: SomeFileWriter writer = null; try { //init …
Niektóre języki (takie jak C ++ i wcześniejsze wersje PHP) nie obsługują finallyczęści try ... catch ... finallykonstruktu. Czy finallykiedykolwiek jest to konieczne? Ponieważ kod w nim zawsze działa, dlaczego nie powinienem / nie powinienem po prostu umieszczać tego kodu po try ... catchbloku bez finallyklauzuli? Dlaczego warto skorzystać (Szukam …
Mam trójwarstwową aplikację sieciową Spring: dao, serwis i kontrolery. Kontroler nigdy nie wywołuje bezpośrednio dao, robi to poprzez warstwę usługi. W tej chwili przez większość czasu, jeśli istnieje wyjątek dao (środowisko wykonawcze), który nie jest obsługiwany, zostanie przechwycony przez stronę JSP pokazującą komunikat o błędzie użytkownikowi końcowemu. Czy warstwa usługi …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.