| |
VB.NET - FortgeschritteneRe: Name des Objekts, das eine NullReferenceException ausgelöst hat | | | Autor: Manfred X | Datum: 24.01.17 10:26 |
| Hallo!
Diese Ausnahme zeigt, daß kein Objekt vorhanden ist.
Insofern kann auch kein Objekt angegeben werden.
Der Stacktrace des Exception-Objekts informiert über die
Code-Zeile zu dem Objekt, in dem diese Ausnahme aufgetreten ist. | |
Re: Name des Objekts, das eine NullReferenceException ausgelöst hat | | | Autor: Manfred X | Datum: 24.01.17 16:49 |
| NullReference bedeutet, daß die entsprechende Variable (im Beispiel: oFile)
keine Referenz auf ein Objekt enthält (=keine Instanz einer Klasse).
Was sollte in dem Fall vorhanden sein ???
Natürlich gibt es zur Laufzeit im Speicher diverse Objekte, aber keins davon
wird im Augenblick der Ausnahme über die verwendete Variable referenziert. | |
Re: Name des Objekts, das eine NullReferenceException ausgelöst hat | | | Autor: Franki | Datum: 25.01.17 06:01 |
| Hallo,
na ja, aber die Zeilennummer im Code sagt ja nicht wirklich immer etwas über den Fehler aus.
das war schon immer so, ist immer noch so und wird wahrscheinlich auch in Zukunft so bleiben.
Zeile1: A = 0
Zeile2: B = 0
......
Zeile 4711: Ergebnis = A/B
Fehler liegt dann in Zeile 4711 und nicht in Zeile2 wo der Wert zugewiesen worden ist der zum Fehler führt. Das kann sich auch von Zeilen im Programmcode über Module, Klassen usw. erstrecken.
Besser ist es vorher nach möglichen Fehlerquellen zu suchen, sei es durch Prüfung der Eingaben der User, beim Einlesen von Datensätzen aus Datenbanken usw.
Fehler zu vermeiden im Programm ist immer besser als Fehler abzufangen. (OK, immer geht das nicht)
Gruß
Frank | |
Re: Name des Objekts, das eine NullReferenceException ausgelöst hat | | | Autor: Manfred X | Datum: 25.01.17 07:37 |
| Hallo!
Ausnahmen werden bei der Code-Ausführung dort geworfen, wo sie auftreten.
Ggf. werden Ausnahmen durch den in der Aufrufliste als nächstes
erreichbaren Catch-Block aufgefangen.
Die Art der Ausnahme kann dort ausgewertet werden.
Man muß klar zwischen der Ausnahme und ihren Ursachen unterscheiden!
Einer Ausnahme können diverse Programm- oder Daten-Fehler zugrundeliegen, z.B.:
- im Code nicht berücksichtigte (selten auftretende) Sonderfälle
- Zugriff auf gesperrte, korrupte oder fehlerhafte Datenquellen
- Fehlspezifikation des Programms
- System- und Hardwarebezogene Probleme (z.B. Speicherüberlauf, korrupte Treiber)
Ob es zweckmäßiger ist, durch geeignete Vorab-Prüfungen im Code, Ausnahmen zu vermeiden
oder Ausnahmen zuzulassen und darauf zu reagieren, muß im Einzelfall entschieden werden.
Durch die Möglichkeit, hierarchische und selektive Try-Catch-Blöcke (zur Ablaufsteuerung)
zu nutzen, wird das Auftreten von Ausnahmen heutzutage mitunter bewußt zugelassen.
Während des Debuggens gibt es z.B. die Möglichkeit, Variablenwerte anhand einer
Bedingung zu überwachen.
Übrigens:
Wenn im Beispiel die Variable A und/oder B als "Single" bzw. als "Double"
deklariert worden ist (IEEE-Formate), wird bei einem Überlauf keine Ausnahme
geworfen, sondern im Resultat ein Sonderwert geliefert (Infinity bzw. NaN).
Beitrag wurde zuletzt am 25.01.17 um 07:59:57 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 |
|
|
Neu! sevDTA 3.0 Pro
SEPA mit Kontonummernprüfung
Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|