Prosta diagnostyka: wyjątki a sprawdzanie warunków
Stosuj sprawdzanie warunków dla oczekiwanych nieprawidłowych danych wejściowych, zgłaszaj wyjątki w sytuacjach wyjątkowych i używaj try/catch do eleganckiej obsługi błędów.
Prosta diagnostyka: wyjątki a sprawdzanie warunków to bezpłatna lekcja C# Academy na CoddyKit. To lekcja 3 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C# Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C# Academy zawiera 3 lekcji w sumie.
Przegląd diagnostyki
Cel: Używanie kontroli ochronnych w przypadku przewidywanych problemów oraz wyjątków w przypadku rzadkich, poważnych problemów.
Przykład kontroli ochronnej
Kontrole ochronne zwracają status zamiast zgłaszać wyjątek w przypadku często występujących nieprawidłowych danych wejściowych.
using System;
public class Program
{
public static bool TryDivide(int a, int b, out int result)
{
if (b == 0)
{
result = 0;
return false; // guard check fails
}
result = a / b;
return true;
}
public static void Main(string[] args)
{
int r;
bool ok = TryDivide(10, 0, out r);
Console.WriteLine("ok=" + ok + " result=" + r);
}
}
Przykład wyjątku
Wyjątki przerywają wykonywanie, chyba że zostaną obsłużone. Należy używać ich w przypadku nieoczekiwanych lub poważnych warunków.
using System;
public class Program
{
public static int PriceWithTax(int price, int ratePercent)
{
if (price < 0)
{
throw new ArgumentOutOfRangeException("price");
}
if (ratePercent < 0 || ratePercent > 100)
{
throw new ArgumentOutOfRangeException("ratePercent");
}
return price + (price * ratePercent / 100);
}
public static void Main(string[] args)
{
try
{
int total = PriceWithTax(100, 20);
Console.WriteLine("Total=" + total);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
Łączenie kontroli i wyjątków
Należy łączyć oba podejścia: kontrole ochronne stosować do rutynowej walidacji, a wyjątki do nieprawidłowych stanów.
using System;
public class Program
{
public static bool TryParsePrice(string text, out int value)
{
return int.TryParse(text, out value); // guard check
}
public static int GetDiscount(int code)
{
if (code < 0) throw new ArgumentException("Invalid code"); // exception
return 10;
}
public static void Main(string[] args)
{
int v;
if (TryParsePrice("123", out v))
{
Console.WriteLine("Parsed " + v);
}
try
{
int d = GetDiscount(-1);
Console.WriteLine("Discount=" + d);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
Przykład try/catch
Należy używać try/catch do obsługi wyjątków i podtrzymania działania programu.
using System;
public class Program
{
public static void Main(string[] args)
{
try
{
int x = 10;
int y = 0;
int z = x / y; // will throw DivideByZeroException
Console.WriteLine(z);
}
catch (DivideByZeroException ex)
{
Console.WriteLine("Cannot divide by zero: " + ex.Message);
}
}
}
Wskazówki
Wskazówki:
- Kontrole ochronne zwracają bezpieczne wartości domyślne w typowych przypadkach.
- Wyjątki powinny być rzadkie i mieć konkretne znaczenie.
- Należy przechwytywać tylko te wyjątki, które można obsłużyć.
Kontrola ochronna czy wyjątek
Podsumowanie
Podsumowanie: Kontrole ochronne należy stosować w przypadku często występujących nieprawidłowych danych wejściowych, wyjątki zgłaszać w przypadku wyjątkowych stanów, a konstrukcji try/catch używać wtedy, gdy możliwe jest odzyskanie działania.
Często zadawane pytania
Czy lekcja „Prosta diagnostyka: wyjątki a sprawdzanie warunków” jest bezpłatna?
Tak — pełny tekst „Prosta diagnostyka: wyjątki a sprawdzanie warunków” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C# Academy, przejdź na CoddyKit PRO. Kurs C# Academy zawiera 3 lekcji w sumie.
Co nauczysz się w „Prosta diagnostyka: wyjątki a sprawdzanie warunków”?
Stosuj sprawdzanie warunków dla oczekiwanych nieprawidłowych danych wejściowych, zgłaszaj wyjątki w sytuacjach wyjątkowych i używaj try/catch do eleganckiej obsługi błędów. Ćwiczysz C# Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć C# Academy?
Nie wymagamy żadnego doświadczenia. C# Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 3.
Ile czasu zajmuje lekcja „Prosta diagnostyka: wyjątki a sprawdzanie warunków”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji C# Academy?
Tak. Każda lekcja C# Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- if/else, switch (klasyczny), pętle: for, while, do, foreach
- break/continue; goto (unikać); zakres; wyjątki a sprawdzanie warunków
- Prosta diagnostyka: wyjątki a sprawdzanie warunków