Sobes.tech
Junior

Τι είναι ο τελεστής throw στη C#;

sobes.tech AI

Απάντηση από AI

Ο τελεστής throw χρησιμοποιείται για την ρητή ενεργοποίηση μιας εξαίρεσης. Επιτρέπει να διακοπεί η κανονική εκτέλεση του προγράμματος και να μεταβιβαστεί ο έλεγχος στο μπλοκ χειρισμού εξαιρέσεων.

// Παράδειγμα χρήσης του τελεστή throw
try
{
    int[] numbers = { 1, 2, 3 };
    int index = 5;

    // Χειροκίνητη ενεργοποίηση εξαίρεσης IndexOutOfRangeException
    if (index >= numbers.Length)
    {
        throw new IndexOutOfRangeException("Ο δείκτης βρίσκεται εκτός των ορίων του πίνακα.");
    }

    Console.WriteLine(numbers[index]);
}
catch (IndexOutOfRangeException ex)
{
    // Χειρισμός της εξαίρεσης
    Console.WriteLine($"Σφάλμα: {ex.Message}");
}

Ο τελεστής throw μπορεί να χρησιμοποιηθεί με δύο μορφές:

  1. throw expression;: Ενεργοποιεί μια νέα εξαίρεση, όπου το expression είναι ένα στιγμιότυπο μιας κλάσης που κληρονομεί από το System.Exception.

    throw new ArgumentException("Μη έγκυρο επιχείρημα.");
    
  2. throw;: Επαναφέρει την τρέχουσα εξαίρεση στο μπλοκ catch. Αυτό διατηρεί όλες τις πληροφορίες της στοίβας κλήσεων της αρχικής εξαίρεσης.

    try
    {
        // Κώδικας που μπορεί να προκαλέσει εξαίρεση
    }
    catch (FileNotFoundException ex)
    {
        // Επιπλέον επεξεργασία ή καταγραφή
        Console.WriteLine($"Το αρχείο δεν βρέθηκε: {ex.FileName}");
    
        // Επαναφορά της εξαίρεσης για περαιτέρω επεξεργασία ψηλότερα στη στοίβα
        throw;
    }
    

Η χρήση του throw είναι σημαντική για:

  • Την ένδειξη σφαλμάτων ή απροσδόκητων καταστάσεων στην εφαρμογή.
  • Τη δημιουργία προσαρμοσμένων εξαιρέσεων για συγκεκριμένα σφάλματα.
  • Τη μεταφορά πληροφοριών σχετικά με το σφάλμα στον κώδικα που καλεί για σωστή επεξεργασία.