kann mir jemand sagen, wie man benutzerdefinierte Ausnahmen in C# schreibt? Wie wir in Java haben, können wir in C# schreiben?Wie schreibt man benutzerdefinierte Ausnahmen in C#?
5
A
Antwort
11
Es ist praktisch das gleiche wie in Java - Sie erweitern die Exception
Klasse.
In der einfachsten Form.
public class CustomException : System.Exception
{
public CustomException()
{
}
public CustomException(string message)
: base(message)
{
}
public CustomException(string message, System.Exception innerException)
: base(message, innerException)
{
}
}
Fügen Sie dazu die Daten hinzu, die Sie mit Feldern oder Eigenschaften erfassen möchten.
Aus Interesse, bevor ich diese Frage beantwortete, überprüfte ich die Microsoft Design Guildlines auf benutzerdefinierten Ausnahmen. Designing Custom Exceptions (MSDN)
- Vermeiden Sie tiefe Namespace-Hierarchien.
- Wenn möglich, leiten Sie von einem der bereitgestellten gemeinsamen Basisausnahmen ab, d. H.
ArgumentException
. JEDOCH Nicht vonApplicationException
abgeleitet. Es ist nicht schädlich, es macht keinen Sinn. MSDN Blog Post on ApplicationException. - Verwenden Sie das Suffix "Exception".
- Machen Sie Ausnahmen serialisierbar, indem Sie die Schnittstelle
ISerializable
implementieren. Offensichtlich muss eine Ausnahme serialisierbar sein, um über die Anwendungsdomänen- und Remotinggrenzen hinweg korrekt zu funktionieren. - Speichern Sie sicherheitsrelevante Informationen in einem privaten Ausnahmezustand, fügen Sie ein SecurityPermission-Attribut hinzu, um sicherzustellen, dass nur vertrauenswürdiger Code die Informationen abrufen kann.
I sehr empfehlen die Design Guidelines auf MSDN lesen.
16
Sie möchten von System.Exception
erben und vorzugsweise (mindestens) dieselben öffentlichen Konstruktoren bereitstellen und die Parameter an die Basiskonstruktoren übergeben. Fügen Sie die relevanten Eigenschaften und/oder Methoden hinzu, die Sie für Ihre speziellen Anforderungen als geeignet erachten.
public class MyException : System.Exception
{
public MyException() : base() { }
public MyException(string message) : base(message) { }
public MyException(string message, Exception innerException) : base(message, innerException) { }
}
Verwandte Themen
- 1. Benutzerdefinierte Ausnahmen in C++
- 2. Wie man DataRow in C# fett schreibt?
- 3. Wie schreibt man benutzerdefinierte Accessor-Methoden in Perl6?
- 4. Wie schreibt man sichere c-Netzwerk-Software?
- 5. C# Wie schreibt man eine TextBox?
- 6. Wie schreibt man C++ Audio-Verarbeitungsanwendungen?
- 7. C#: Overriding ToString() -Methode für benutzerdefinierte Ausnahmen
- 8. Wie behandelt man Ausnahmen in C# DLL geladen von C++
- 9. Wie schreibt man Zeichenkettenformat in angularjs wie C#?
- 10. Wie objective-C, wie schreibt man "valueForKey" in swift?
- 11. Benutzerdefinierte Ausnahmen in Java werfen
- 12. Benutzerdefinierte Ausnahmen in PCL-Dateien
- 13. Wie schreibt man es schön?
- 14. Wie schreibt man C++ - Storm und Thrift in Storm
- 15. Wie man Besuchermuster für einen abstrakten Syntaxbaum in C# schreibt?
- 16. Wie schreibt man isilo .pdb Dateien in C#?
- 17. Wie schreibt man Lambda-Methoden in Objective-C?
- 18. Benutzerdefinierte Attribute und Ausnahmen in .net
- 19. Warum benutzerdefinierte Ausnahmen erstellen?
- 20. Wie behandelt man Ausnahmen?
- 21. Wie erstellt man Ausnahmen?
- 22. Wie simuliert man Ausnahmen in C mit goto?
- 23. Wie schreibt man mehrere Anweisungen?
- 24. , wie man schreibt Mysql Abfrage
- 25. COM-Ausnahmen in C#
- 26. Wie schreibt man faule Accessoren
- 27. Wie schreibt man Ajax richtig?
- 28. C++ unbehandelte Ausnahmen
- 29. Wie kann ich benutzerdefinierte Ausnahmen schreiben?
- 30. Wie schreibt man eine Parallelschleife in Julia?
Gemäß den Designrichtlinien für .NET Framework sollen Sie direkt von Exception erben, es sei denn, Sie haben einen wirklich guten Grund, etwas anderes auszuwählen. –
@ Jonathan: Alle Systeme wieder normal. Löschte meine blöde Antwort und entfernte meinen nutzlosen Kommentar. Upvoted die Antwort im Namen von SO Geist. Danke für die Korrektur. –