Pytania oznaczone «exceptions»

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

161
Czy zerowe referencje są naprawdę złe?

Słyszałem, że powiedzenie, że włączenie zerowych referencji w językach programowania jest „błędem miliarda dolarów”. Ale dlaczego? Jasne, mogą powodować wyjątki NullReference, ale co z tego? Każdy element języka może być źródłem błędów, jeśli zostanie użyty nieprawidłowo. A jaka jest alternatywa?...

101
Jak napisać dobry komunikat wyjątku

Obecnie sprawdzam kod i jedną z rzeczy, które zauważam, jest liczba wyjątków, w których komunikat o wyjątku wydaje się powtarzać, gdzie wystąpił wyjątek. na przykład throw new Exception("BulletListControl: CreateChildControls failed."); Wszystkie trzy elementy w tej wiadomości mogę opracować na...

99
Powiedziano mi, że wyjątków należy używać tylko w wyjątkowych przypadkach. Skąd mam wiedzieć, czy moja sprawa jest wyjątkowa?

Moim szczególnym przypadkiem jest to, że użytkownik może przekazać ciąg znaków do aplikacji, aplikacja analizuje go i przypisuje do obiektów strukturalnych. Czasami użytkownik może wpisać coś nieprawidłowego. Na przykład ich wkład może opisywać osobę, ale może powiedzieć, że jej wiek to „jabłko”....

88
Sprawdź obsługę pierwszej kontra wyjątku?

Pracuję nad książką „Head First Python” (to jest mój język do nauki w tym roku) i doszedłem do sekcji, w której dyskutują o dwóch technikach kodu: Sprawdzanie obsługi First vs. Exception. Oto przykład kodu Python: # Checking First for eachLine in open("../../data/sketch.txt"): if...

80
Wyjątki, kody błędów i dyskryminowane związki

Niedawno rozpocząłem programowanie w języku C #, ale mam spore doświadczenie w Haskell. Ale rozumiem, że C # jest językiem zorientowanym obiektowo, nie chcę wciskać okrągłego kołka w kwadratowy otwór. Przeczytałem artykuł Microsoft dotyczący wyjątku Zgłaszanie wyjątków : NIE zwracaj kodów...

76
Dlaczego przepełnienie arytmetyczne jest ignorowane?

Czy kiedykolwiek próbowałeś zsumować wszystkie liczby od 1 do 2 000 000 w swoim ulubionym języku programowania? Wynik można łatwo obliczyć ręcznie: 2 000 001 000 000, czyli około 900 razy więcej niż maksymalna wartość 32-bitowej liczby całkowitej bez znaku. Drukuje się C # -1453759936- wartość...

57
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...

52
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,