vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Allgemeine Ausnahmetypen nicht auffangen? 
Autor: keco
Datum: 20.01.12 16:26

1.) Meinst du denn so etwas: Throw New Exception("Fehler") ?
In diesem Fall ist es äußert nachteilig eine solche Exception auszulösen. Denn hierbei kannst du im späteren Programmverlauf nicht mehr nachvollziehen woher der Fehler kommt und vorallem wieso er auftrat. Die Basisklasse enthält keine spezifischen Informationen zu einer speziellen Ausnahme. Selbst mit einer übergebenen Fehlerinformationen kannst du in einer komplexeren Try-Catch-Anweisung mit mehreren Catch-Blöcken nicht speziell *nur diesen einen Fall* abfangen.

Stell dir vor du hast eine Klasse, die eine Datei in ein Verzeichnis speichern soll. Darin wirfst du für einen speziellen Fall (beispielsweise bei einer falschen Dateierweiterung) eine Ausnahme aus. Irgendwo im Programm willst du diese Methode aufrufen und fängst die verschiedenen Ausnahmen ab. Beispielsweise eine PathTooLongException, IOException, SecurityException und so weiter. Deine selbst erstellte Ausnahme kannst du nur abfangen, indem du auch die allgemeine Exception abfängst. Spezielle Informationen zum Fehler sind nicht enthalten, sondern nur die Meldung. Erstellst du eine eigene Klasse dafür könntest du eine Eigenschaft hinzufügen, die eine Liste der gültigen Dateierweiterungen angibt. Das ist alles nur beispielhaft.

Ansonsten solltest du alle möglichen Ausnahmen versuchen abzufangen, die auftreten könnten. Am einfachsten natürlich die, die durch das Framework ausgelöst werden können. Bei denen, die in der CLR auftreten können wird es schwieriger. Die ganz allgemeine Ausnahme kannst du auch abfangen, sollte aber zu keinem Zeitpunkt in deinem Programm auftreten, da du möglichst alle speziellen verarbeiten sollst. Dabei hast du auch die Möglichkeit entsprechend der Ausnahme aufräumarbeiten zu unternehmen. Beim Debuggen hilft es dir außerdem den aktuellen Programmzustand schneller zu erfassen.

2.) Was genau meinst du damit? Die Ausnahme erneut auszulösen kann sinnvoll sein. Du kannst beispielsweise in einer Methode bestimmte Ausnahmen abfangen, die du programmtechnisch automatisiert korrigieren kannst. Alle anderen Ausnahmen, bei denen es mehrere Möglichkeiten der Behebung gibt kannst du dadurch weiterleiten. Die Aufrufliste wird dabei weitergeführt, wenn du die Ausnahme nicht explizit angibst. Dazu kannst du dir diese Regel anschauen. Durch Angabe der Ausnahme wird die Stapelüberwachung in der Methode erneut begonnen.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Allgemeine Ausnahmetypen nicht auffangen?1.8242Net19.01.12 23:17
Re: Allgemeine Ausnahmetypen nicht auffangen?1.480keco20.01.12 16:26
Re: Allgemeine Ausnahmetypen nicht auffangen?1.3542Net20.01.12 19:43
Re: Allgemeine Ausnahmetypen nicht auffangen?1.354keco20.01.12 20:08
Re: Allgemeine Ausnahmetypen nicht auffangen? - Ergänzung zu...1.335keco20.01.12 20:32
Vielen Dank!1.2972Net21.01.12 11:54
Re: Vielen Dank!1.352keco21.01.12 12:08
Re: Vielen Dank!1.2972Net21.01.12 13:56

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel