English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C# benutzerdefinierte Ausnahme

C # umfasst eingebaute Ausnahmearten wie NullReferenceException, MemoryOverflowException und andere. Aber wenn die Geschäftsregeln Ihrer Anwendung verletzt werden, möchten Sie normalerweise eine Ausnahme auslösen. Daher können Sie durch Ableiten von der ApplicationException-Klasse eine benutzerdefinierte Ausnahmeklasse erstellen.

ab .Net v1.0 mit der Einführung der .Net-Framework-Klasse ApplicationException. Sie ist dazu bestimmt, als Basisklasse für benutzerdefinierte Ausnahme-Klassen zu dienen. Allerdings empfiehlt Microsoft heute, die Klasse Exception zu verwenden, um benutzerdefinierte Ausnahme-Klassen zu erstellen.

Zum Beispiel, erstellen Sie in der Schule eine Anwendung InvalidStudentNameException-Klasse, die es nicht erlaubt, dass der Name eines Schülers spezielle Zeichen oder numerische Werte enthält.

class Student
{}}
    public int StudentID { get; set; }
    public string StudentName { get; set; }
}
[Serializable]
class InvalidStudentNameException : Exception
{}}
    public InvalidStudentNameException()
    {}}
    }
    public InvalidStudentNameException(string name)
        : base(String.Format("Invalid Student Name: {0}", name))
    {}}
    }
  
}

Jetzt kann eine InvalidStudentNameException in der Anwendung ausgelöst werden, wenn der Programmname spezielle Zeichen oder Ziffern enthält. Verwenden Sie den Schlüsselwort 'throw', um eine Ausnahme auszulösen.

class Program
{}}
    static void Main(string[] args)
    {}}
        Student newStudent = null;
          
        try
        {}}               
            newStudent = new Student();
            newStudent.StudentName = "James007";
            
            ValidateStudent(newStudent);
        }
        catch(InvalidStudentNameException ex)
        {}}
            Console.WriteLine(ex.Message);
        }
          
        Console.ReadKey();
    }
    private static void ValidateStudent(Student std)
    {}}
        Regex regex = new Regex("^[a--Z]+$
        if (!regex.IsMatch(std.StudentName)) throw new InvalidStudentNameException(std.StudentName);
            
    }
}
Ausgabe:
Ungültiger Student Name: James000

Daher können Sie benutzerdefinierte Ausnahme-Klassen erstellen, um zwischen Systemausnahmen zu unterscheiden.