vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 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 - Fortgeschrittene
Re: private void Funktionsname() throws Exception 
Autor: Preisser
Datum: 14.03.11 20:19

Hallo,

naja, nicht immer sollte man Exceptions, die in einer Funktion auftreten, genau so an den Aufrufer weiterleiten. Im Javadoc ist das beschrieben mit den Lowlevel-Exceptions und den Highlevel-Exceptions. Beispielsweise, wenn man eine Komponente entwickelt mit einer Methode, und die soll irgendwas machen. Angenommen die Funktion muss eine Datei lesen (dabei kann eine IOException auftreten) und dann muss sie noch eine Datenbankverbindung herstellen (dabei kann eine SQLException) auftreten. Falls irgendwas davon fehlschlägt, muss die Methode auch fehlschlagen, da sie ihre Aufgabe sonst nicht erfüllen kann. Es wäre nun aber nicht gerade die beste Lösung, die IOException oder die SQLException einfach an den Aufrufer weiterzuleiten, weil vielleicht soll der ja gar nicht mitbekommen, wie die Methode genau ihre Aufgabe erledigt. Sondern falls sie fehlschlägt, liefert sie eine bestimmte Exception, z.B. "MeineMethodenException". Damit macht man nicht
public void myMethod() throws IOException, SQLException, XPathException, _
  NamingException .....
sondern
public void myMethod() throws MeineMethodenException
.
Also in der Methode fängt man die IOException, SQLException usw. auf und wirft eine neue MeineMethodenException.

Das hat eigentlich nichts mit Umständlichkeit zu tun, sondern mit Kapselung. Der Aufrufer muss jetzt keinen Try-Catch-Block haben in der er jede dieser Ausnahmen abfängt, sondern er fängt nur die "MeineMethodenException" ab, die geworfen wird, wenn die Methode fehlschlägt (man kann zwar auch nur Exception auffangen, aber vielleicht braucht man ja einen größeren Try-Catch-Block, in dem man auch noch andere Exceptions gezielt auffangen will. Es ist nicht immer das Beste, einfach nur "Exception" aufzufangen).

Und wenn der Aufrufer doch wissen soll, was der Grund des Fehlschlagens ist, kann man eben den Grund (Cause) angeben, indem man die originale Exception mitliefert.

Beitrag wurde zuletzt am 14.03.11 um 20:25:28 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
private void Funktionsname() throws Exception1.742Martin11.03.11 14:26
Re: private void Funktionsname() throws Exception1.151ModeratorDaveS11.03.11 14:47
Re: private void Funktionsname() throws Exception1.254Martin11.03.11 14:53
Re: private void Funktionsname() throws Exception1.138ModeratorDaveS11.03.11 14:55
Re: private void Funktionsname() throws Exception1.072Martin11.03.11 14:56
Re: private void Funktionsname() throws Exception1.136Micke14.03.11 11:45
Re: private void Funktionsname() throws Exception1.148Preisser14.03.11 13:38
Re: private void Funktionsname() throws Exception1.060ModeratorDaveS14.03.11 13:51
Re: private void Funktionsname() throws Exception1.132Micke14.03.11 14:11
Re: private void Funktionsname() throws Exception1.058Preisser14.03.11 15:19
Re: private void Funktionsname() throws Exception1.091ModeratorDaveS14.03.11 15:46
Re: private void Funktionsname() throws Exception1.110Preisser14.03.11 15:54
Re: private void Funktionsname() throws Exception1.081ModeratorDaveS14.03.11 19:50
Re: private void Funktionsname() throws Exception1.166Preisser14.03.11 20:19
Re: private void Funktionsname() throws Exception1.197ModeratorDaveS14.03.11 21:14
Re: private void Funktionsname() throws Exception1.163Preisser14.03.11 21:58
Re: private void Funktionsname() throws Exception1.232ModeratorDaveS15.03.11 07:05
Re: private void Funktionsname() throws Exception1.092Preisser15.03.11 14:07
Re: private void Funktionsname() throws Exception1.075Maas14.03.11 21:28
Re: private void Funktionsname() throws Exception1.146Preisser14.03.11 22:41
Re: private void Funktionsname() throws Exception1.108ModeratorFZelle14.03.11 19:54

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