| |

VB.NET - FortgeschritteneRe: private void Funktionsname() throws Exception | |  | Autor: Preisser | Datum: 14.03.11 15:54 |
| Hi DaveS,
deinen Beitrag hab ich schon gelesen, hab allerdings nicht ganz verstanden was du damit meinst.
Wenn eine Funktion später noch eine andere Exception werfen können soll, kann man diese ja zur throws-Deklaration hinzufügen.
Meinst du, wenn man eine Komponente entwickelt, und diese später noch zusätzlich eine andere Exception werfen können soll, womit aber die Binärkompatibilität nicht mehr sichergestellt ist?
Ich glaub für solche Fälle würde mein eine eigene Exception-Klasse erstellen, und die Funktion immer diese Exception werfen lassen, egal welche in Wirklichkeit auftritt. Dieser eigenen Exception übergibt man aber im Konstruktor die eigentlich aufgetretene Exception, diese wird damit die "Cause" für diese Exception.
Also praktisch einen Wrapper, der die eigenltiche Exception umhüllt. Den Grund kann man dann mit ex.getCause() abfragen: Zitat aus JavaDoc: Zitat: |  | A second reason that a throwable may have a cause is that the method that throws it must conform to a general-purpose interface that does not permit the method to throw the cause directly. |  |
Der Grund, dass man in Java alle von Throwable abgeleiteten Klassen (Checked Exceptions), außer solche, die von RuntimeException oder Error abgeleitet werden, abfangen muss, besteht darin, dass diese Exceptions Konditionen darstellen, die nicht durch Bugs auftreten können, sondern weil sie in der Natur der Funktion liegen. Beispielsweise, wenn man eine Datei einlesen will, kann es passieren, dass die Datei nicht vorhanden ist. Deswegen muss irgendwo die entsprechende IOException (oder die Unterklasse FileNotFoundException) abgefangen werden. Bei RuntimeExceptions dagegen (wie NullPointerException usw.) dagegen handelt es sich um Ausnahmen, die wahrscheinlich durch fehlerhaftes Programmieren entstehen (also Bugs). Diese müssen nicht abgefangen werden, da es sehr schwer wäre, diese zu behandeln, und es eben nicht vorgesehen ist, dass so eine Exception auftritt.
Aber ich will hier nicht Java besser als .Net machen, denn auch als Java-Programmierer muss ich zugeben, dass .Net (bzw. auch C#) schon einige (viele) Sachen besser als Java macht. 
Beitrag wurde zuletzt am 14.03.11 um 16:30:06 editiert. |  |
 | 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 |
  |
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats sevGraph (VB/VBA) 
Grafische Auswertungen
Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Weitere Infos
|
|
|
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
|
|