Pytania otagowane jako exceptions

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

9
Czy w moich metodach należy akceptować puste kolekcje, które się nad nimi powtarzają?
Mam metodę, w której cała logika jest wykonywana w pętli foreach, która iteruje nad parametrem metody: public IEnumerable<TransformedNode> TransformNodes(IEnumerable<Node> nodes) { foreach(var node in nodes) { // yadda yadda yadda yield return transformedNode; } } W takim przypadku wysłanie pustej kolekcji skutkuje pustą kolekcją, ale zastanawiam się, czy to nierozsądne. …


7
Dlaczego „odwołanie do obiektu nie jest ustawione na instancję obiektu” nie mówi nam, który obiekt?
Wprowadzamy system i czasami otrzymujemy słynny wyjątek NullReferenceExceptionz komunikatem Object reference not set to an instance of an object. Jednak w metodzie, w której mamy prawie 20 obiektów, posiadanie dziennika, który mówi, że obiekt jest pusty, tak naprawdę w ogóle się nie przydaje. To tak, jakby powiedzieć, kiedy jesteś agentem …

4
Używasz asercji zamiast rzucać wyjątkami?
Często, gdy piszę funkcje, chcę się upewnić, że dane wejściowe są prawidłowe, aby wykryć takie błędy jak najwcześniej (uważam, że są to tak zwane warunki wstępne). Kiedy warunek wstępny zawiedzie, zawsze rzucałem wyjątek. Ale zaczynam wątpić, czy jest to najlepsza praktyka, a jeśli nie, twierdzenia byłyby bardziej odpowiednie. Więc kiedy …



3
Czy konwencjonalne jest zgłaszanie błędu NotImplementedError dla metod, których wdrożenie jest w toku, ale nie jest planowane jako abstrakcyjne?
Lubię podnosić NotImplementedErrormetodę, którą chcę wdrożyć, ale tam, gdzie jeszcze się nie udało. Mogę już mieć częściową implementację, ale dodaj ją, raise NotImplementedError()ponieważ jeszcze jej nie lubię. Z drugiej strony lubię też przestrzegać konwencji, ponieważ ułatwi to innym osobom utrzymanie mojego kodu, a konwencje mogą istnieć z dobrych powodów. Jednak …

5
Jak mogę tworzyć i egzekwować umowy dotyczące wyjątków?
Staram się przekonać mój zespół, aby zezwalał na stosowanie wyjątków w C ++ zamiast zwracania wartości bool isSuccessfullub wyliczenia z kodem błędu. Nie mogę jednak odeprzeć jego krytyki. Rozważ tę bibliotekę: class OpenFileException() : public std::runtime_error { } void B(); void C(); /** Does blah and blah. */ void B() …
33 c++  exceptions 

8
Czy zgłaszanie wyjątku jest tu anty-wzorem?
Właśnie omówiłem wybór projektu po przejrzeniu kodu. Zastanawiam się, jakie są twoje opinie. Jest ta Preferencesklasa, która jest wiadrem dla par klucz-wartość. Wartości zerowe są legalne (to ważne). Oczekujemy, że niektóre wartości mogą jeszcze nie zostać zapisane i chcemy automatycznie obsługiwać te przypadki, inicjując je z predefiniowaną wartością domyślną na …

3
Uwagi dotyczące obsługi błędów
Problem: Od dłuższego czasu martwię się o exceptionsmechanizm, ponieważ uważam, że tak naprawdę nie rozwiązuje tego, co powinien. ROSZCZENIE: Na ten temat toczą się długie debaty i większość z nich ma trudności z porównywaniem exceptionsi zwracaniem kodu błędu. To zdecydowanie nie jest tutaj temat. Próbując zdefiniować błąd, zgodziłbym się z …


7
Jak leczyć nieobsługiwane wyjątki? (Zakończ aplikację a utrzymaj ją przy życiu)
Jaka jest najlepsza praktyka, gdy w aplikacji komputerowej występują nieobsługiwane wyjątki? Myślałem o wyświetleniu użytkownikowi wiadomości, aby mógł skontaktować się z pomocą techniczną. Poleciłbym użytkownikowi ponowne uruchomienie aplikacji, ale nie wymuszanie jej. Podobne do omawianych tutaj: ux.stackexchange.com - Jaki jest najlepszy sposób radzenia sobie z nieoczekiwanymi błędami aplikacji? Projekt jest …

7
Czy program C ++ powinien wychwytywać wszystkie wyjątki i zapobiegać przedostawaniu się wyjątków poza main ()?
Kiedyś mi doradzono, że program C ++ powinien ostatecznie wyłapać wszystkie wyjątki. Podane wówczas uzasadnienie było zasadniczo takie, że programy, które zezwalają na wyjątki, pojawiają się poza main()wejściem w dziwny stan zombie. Powiedziano mi to kilka lat temu i z perspektywy czasu uważam, że zaobserwowane zjawisko było spowodowane długim generowaniem …
29 c++  exceptions 

7
Czy można używać wyjątków jako narzędzi do wczesnego „wychwytywania” błędów?
Używam wyjątków, aby wcześnie wychwytywać problemy. Na przykład: public int getAverageAge(Person p1, Person p2){ if(p1 == null || p2 == null) throw new IllegalArgumentException("One or more of input persons is null"). return (p1.getAge() + p2.getAge()) / 2; } Mój program nigdy nie powinien przejść nulltej funkcji. Nigdy tego nie zamierzam. …

12
Jakie są problemy dewelopera z pomocnymi komunikatami o błędach? [Zamknięte]
To nadal zdumiewa mnie, że w dzisiejszych czasach, produkty które mają latach użytkowania na swoim koncie, zbudowany przez zespoły specjalistów, jeszcze do tej pory - nie zapewniają pomocne komunikaty o błędach dla użytkownika. W niektórych przypadkach dodanie tylko odrobiny dodatkowych informacji może zaoszczędzić użytkownikowi godzin kłopotów. Program, który generuje błąd, …

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.