Powtórzenie — obsługa błędów
Część sekcji Logika i sterowanie przepływem ścieżki C# w Coddy. Lekcja 30 z 66.
Wyzwanie
ŚredniUtwórz metodę o nazwie processUserData, która:
- Przyjmuje dwa parametry: string
filePathi intuserAge - Używa instrukcji using, aby odczytać pierwszy wiersz z pliku wskazanego przez
filePath - Sprawdza, czy
userAgemieści się w przedziale od 18 do 120 (włącznie) - Jeśli wiek jest nieprawidłowy, zgłasza niestandardowy wyjątek o nazwie
InvalidUserAgeExceptionz komunikatem "Age must be between 18 and 120" - Jeśli plik nie istnieje, przechwytuje wyjątek FileNotFoundException i wyświetla "User file not found"
- Jeśli wystąpi inny wyjątek IO, przechwytuje go i wyświetla "Error reading user data: [exception message]"
- W przypadku innych wyjątków wyświetla "An unexpected error occurred"
- Zwraca zawartość pliku, jeśli operacja się powiedzie, lub "No data", jeśli wystąpi dowolny wyjątek
Spróbuj swoich sił
using System;
using System.IO;
class ProcessUserData
{
// Utwórz tutaj własny wyjątek
public static string processUserData(string filePath, int userAge)
{
// Napisz tutaj swój kod
}
}Wszystkie lekcje w sekcji Logika i sterowanie przepływem
1Tablice wielowymiarowe
Podstawy tablic 2DDeklarowanie i inicjalizacja tablic 2DDostęp do elementów tablic 2DZagnieżdżone pętle z tablicami 2DTablice postrzępionePodstawowe operacje na macierzachPodsumowanie — tablice wielowymiarowe4Techniki sterowania przepływem
Wczesne zwrotyKlauzule ochronneInstrukcje skoku (goto)Break i continueSpłaszczanie zagnieżdżonych warunków7Zaawansowane operatory logiczne
Ewaluacja z krótkim spięciemWarunkowe operatory logicznePriorytet operatorówPowtórzenie — zaawansowane operatory2Zaawansowane podejmowanie decyzji
Wiele warunkówZłożona logika Boole’aPorównanie if i switchZagnieżdżone instrukcje switchPodsumowanie — zaawansowane decyzje5Obsługa wyjątków
Podstawy try-catchTypy wyjątkówWiele bloków catchPraca z plikamiBlok finallyusing a try-finallyWłasne wyjątkiPowtórzenie — obsługa błędów3Udoskonalenia pętli
Wydajność pętliIterowanie po złożonych strukturachKażdy typ pętliRefaktoryzacja pętliPodsumowanie — zoptymalizowane pętle6Obsługa wartości null
Podstawy referencji nullTypy wartości dopuszczające nullWzorce sprawdzania nullProgramowanie defensywnePodsumowanie — bezpieczeństwo nullPoćwicz samodzielnie: Kompilator C# online