Junior
Czym jest operator throw w C#?
sobes.tech AI
Odpowiedź od AI
Operator throw jest używany do jawnego wywoływania wyjątku. Pozwala przerwać normalne wykonanie programu i przekazać kontrolę do bloku obsługi wyjątków.
// Przykład użycia operatora throw
try
{
int[] numbers = { 1, 2, 3 };
int index = 5;
// Ręczne wywołanie wyjątku IndexOutOfRangeException
if (index >= numbers.Length)
{
throw new IndexOutOfRangeException("Indeks znajduje się poza zakresem tablicy.");
}
Console.WriteLine(numbers[index]);
}
catch (IndexOutOfRangeException ex)
{
// Obsługa wyjątku
Console.WriteLine($"Błąd: {ex.Message}");
}
Operator throw może być używany w dwóch formach:
-
throw expression;: Wywołuje nowy wyjątek, gdzieexpressionjest instancją klasy dziedziczącej poSystem.Exception.throw new ArgumentException("Nieprawidłowy argument."); -
throw;: Ponownie rzuca bieżący wyjątek w blokucatch. Zachowuje pełne informacje o stosie wywołań oryginalnego wyjątku.try { // Kod, który może wywołać wyjątek } catch (FileNotFoundException ex) { // Dodatkowe obsługiwanie lub logowanie Console.WriteLine($"Plik nie został znaleziony: {ex.FileName}"); // Ponowne rzucenie wyjątku do dalszej obsługi wyżej w stosie throw; }
Użycie throw jest ważne dla:
- Wskazywania błędów lub nieoczekiwanych sytuacji w aplikacji.
- Tworzenia własnych wyjątków dla specyficznych błędów.
- Przekazywania informacji o błędzie do wywołującego kodu w celu poprawnego obsłużenia.