Czy projektując wyjątki, powinienem pisać wiadomości zrozumiałe dla użytkownika lub programisty? Kto powinien być czytelnikiem komunikatów o wyjątkach? Uważam, że komunikaty o wyjątkach w ogóle nie są przydatne i zawsze trudno mi je pisać. Zgodnie z konwencją typ wyjątku powinien już informować nas, dlaczego coś nie działało, a właściwości niestandardowe …
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 …
Często spotykam metody / funkcje, które mają dodatkowy parametr boolowski, który kontroluje, czy wyjątek jest zgłaszany w przypadku niepowodzenia, czy zwracany jest null. Trwają już dyskusje na temat tego, który z nich jest lepszym wyborem, więc nie skupmy się na tym tutaj. Zobacz np. Zwróć wartość magiczną, wyrzuć wyjątek lub …
Za każdym razem, gdy program Perl, Python, C ++ lub Tcl zatrzymuje się z nieobsługiwanym wyjątkiem, środowiska wykonawcze języka starają się zarejestrować niezerowy kod wyjścia dla procesu. Nawet programy oparte na Eclipse zwracają 1, jeśli zawiodą podczas uruchamiania. Programy uruchamiane przez standard java.exeszczęśliwie zwracają zero, bez względu na to, jak …
Niektóre języki programowania, takie jak np. Scala, mają pojęcie Optiontypów (zwanych także Maybe), które mogą zawierać wartość lub nie. Z tego, co o nich czytałem, są one powszechnie uważane za lepszy sposób radzenia sobie z tym problemem niż null, ponieważ wyraźnie zmuszają programistę do rozważenia przypadków, w których może nie …
Buduję interfejs API, funkcję, która przesyła plik. Ta funkcja nie zwróci niczego / unieważni, jeśli plik został poprawnie przesłany i zgłasza wyjątek, gdy wystąpił jakiś problem. Dlaczego wyjątek, a nie tylko fałsz? Ponieważ wewnątrz wyjątku mogę określić przyczynę niepowodzenia (brak połączenia, brak nazwy pliku, nieprawidłowe hasło, brak opisu pliku itp.). …
Skąd pochodzą wyjątki i obsługa wyjątków? Podoba mi się, jak .NET go używa, podoba mi się, jak C ++ go obsługuje (ale biblioteki niestety używają kodu powrotu lub są napisane w C). Znam jego standard we wszystkich nowych językach, ale kto go zaprojektował jako pierwszy lub skąd się wziął? Czy …
Czytanie artykułu Erica Lipperta na temat wyjątków zdecydowanie przykuło uwagę na to, jak powinienem podejść do wyjątków, zarówno jako producenta, jak i konsumenta. Jednak wciąż staram się zdefiniować wytyczne dotyczące tego, jak uniknąć zgłaszania irytujących wyjątków. Konkretnie: Załóżmy, że masz metodę Save, która może zawieść, ponieważ: a) ktoś zmodyfikował rekord …
Nie do końca rozumiem konsekwentne niszczenie referencji zerowych przez niektórych ludzi w języku programowania. Co jest w nich takiego złego? Jeśli poproszę o dostęp do odczytu pliku, który nie istnieje, cieszę się, że otrzymam wyjątek lub odwołanie zerowe, a jednak wyjątki są uważane za dobre, ale odniesienia zerowe są uważane …
Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby skupiało się tylko na jednym problemie, edytując ten post . Zamknięte 4 lata temu . W jaki sposób uczysz programistów obsługi wyjątków? Wszystkie inne rzeczy są nauczane w łatwy sposób …
Czy bloki catch powinny być używane do zapisywania logiki, tj. Obsługi kontroli przepływu itp.? A może po prostu rzucać wyjątki? Czy wpływa to na wydajność lub łatwość konserwacji kodu? Jakie są skutki uboczne (jeśli występują) logiki pisania w bloku catch? EDYTOWAĆ: Widziałem klasę Java SDK, w której zapisali logikę w …
Ustawienie Często mam problemy z określeniem, kiedy i jak korzystać z wyjątków. Rozważmy prosty przykład: załóżmy, że przeglądam stronę internetową, powiedz „ http://www.abevigoda.com/ ”, aby ustalić, czy Abe Vigoda nadal żyje. Aby to zrobić, wystarczy pobrać stronę i poszukać czasów, w których pojawia się zwrot „Abe Vigoda”. Zwracamy pierwszy występ, …
Zawsze zastanawiałem się, ile różnych klas wyjątków powinienem wdrożyć i wyrzucić dla różnych elementów mojego oprogramowania. Mój szczególny rozwój jest zwykle związany z C ++ / C # / Java, ale wierzę, że jest to pytanie dla wszystkich języków. Chcę zrozumieć, jaka jest duża liczba różnych wyjątków i czego społeczność …
Właśnie przeglądałem jakiś kod, który napisałem jakiś czas temu i widzę, że mam kilka prywatnych metod, które generują argumentnullexceptions i / lub argumentexceptions, jeśli występują problemy z parametrami metod. Wydaje mi się, że moim uzasadnieniem jest to, że pomaga w przyszłości sprawdzić aplikację, jeśli ktoś spróbuje „niewłaściwie użyć” tej metody …
Za każdym razem, gdy muszę podać dodatkowe informacje na temat wyjątku, zastanawiam się, który sposób jest właściwy . Na potrzeby tego pytania napisałem przykład. Załóżmy, że istnieje klasa, w której chcemy zaktualizować Abbreviationwłaściwość. Z SOLIDOWEGO punktu widzenia może to nie być idealne, ale nawet gdybyśmy przeszli metodę roboczą za pośrednictwem …
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.