Pytania otagowane jako exceptions

Wyjątkiem jest występowanie w procesie aplikacji, które wymaga odchylenia od normalnego przepływu programu.

7
Dlaczego w C ++ nie ma konstrukcji „nareszcie”?
Obsługa wyjątków w C ++ jest ograniczona do try / throw / catch. W przeciwieństwie do Object Pascal, Java, C # i Python, nawet w C ++ 11 finallykonstrukcja nie została zaimplementowana. Widziałem okropnie dużo literatury C ++ omawiającej „bezpieczny kod wyjątku”. Lippman pisze, że bezpieczny kod wyjątku jest ważnym, …
57 c++  exceptions 

12
Czy wyłapywanie ogólnych wyjątków jest naprawdę złą rzeczą?
Zwykle zgadzam się z większością ostrzeżeń dotyczących analizy kodu i staram się ich przestrzegać. Mam jednak trudniejszy czas z tym: CA1031: Nie przechwytuj ogólnych typów wyjątków Rozumiem uzasadnienie tej reguły. Ale w praktyce, jeśli chcę podjąć to samo działanie niezależnie od zgłoszonego wyjątku, dlaczego miałbym obsługiwać każde z nich konkretnie? …
57 c#  design  exceptions 

9
Zgłaszaj wyjątek lub pozwól kodowi zawieść
Zastanawiam się, czy są jakieś plusy i minusy przeciwko temu stylowi: private void LoadMaterial(string name) { if (_Materials.ContainsKey(name)) { throw new ArgumentException("The material named " + name + " has already been loaded."); } _Materials.Add( name, Resources.Load(string.Format("Materials/{0}", name)) as Material ); } Ta metoda powinna być dla każdego nameuruchomiona tylko …
52 exceptions 

3
Dlaczego specyfikacje wyjątków są złe?
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. …

6
Obejście dla sprawdzonych wyjątków Java
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ą …

4
Dlaczego iteratory w Pythonie zgłaszają wyjątek?
Oto składnia iteratorów w Javie (nieco podobna składnia w C #): Iterator it = sequence.iterator(); while (it.hasNext()) { System.out.println(it.next()); } Co ma sens. Oto równoważna składnia w Pythonie: it = iter(sequence) while True: try: value = it.next() except StopIteration: break print(value) Myślałem, że wyjątki powinny być stosowane tylko w wyjątkowych …

4
Dlaczego metoda nie powinna generować wielu typów sprawdzonych wyjątków?
Używamy SonarQube do analizy naszego kodu Java i ma on następującą regułę (ustawioną na krytyczną): Metody publiczne powinny zgłaszać maksymalnie jeden sprawdzony wyjątek Użycie sprawdzonych wyjątków zmusza osoby wywołujące metody do radzenia sobie z błędami, propagując je lub obsługując. To sprawia, że ​​te wyjątki są w pełni częścią interfejsu API …

8
Po co projektować nowoczesny język bez mechanizmu obsługi wyjątków?
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 …





11
Czy zmienne błędu są anty-wzorcem czy dobrym projektem?
Aby obsłużyć kilka możliwych błędów, które nie powinny powstrzymywać wykonywania, mam errorzmienną, którą klienci mogą sprawdzać i używać do zgłaszania wyjątków. Czy to jest anty-wzór? Czy istnieje lepszy sposób, aby sobie z tym poradzić? Na przykład w akcji możesz zobaczyć API mysqli PHP . Załóżmy, że problemy z widocznością (akcesory, …

4
Przebaczenie w Pythonie vs. pozwolenie i pisanie kaczek
W Pythonie często słyszę, że lepiej „błagać o wybaczenie” (wyłapywanie wyjątków) zamiast „pytać o pozwolenie” (sprawdzanie typu / warunku). Jeśli chodzi o wymuszanie pisania kaczek w Pythonie, to jest to try: x = foo.bar except AttributeError: pass else: do(x) lepszy czy gorszy niż if hasattr(foo, "bar"): do(foo.bar) else: pass pod …

8
Czy powinienem rzucić wyjątek w przypadku znaczącej wartości spoza zakresu, czy sam go obsłużyć?
Napisałem strukturę, która reprezentuje współrzędne szerokości i długości geograficznej. Ich wartości wynoszą od -180 do 180 dla długości i 90 do -90 dla szerokości. Jeśli użytkownik tej struktury podaje mi wartość spoza tego zakresu, mam 2 opcje: Rzuć wyjątek (argument poza zakresem) Konwertuj wartość na ograniczenie Ponieważ współrzędne -185 ma …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.