vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Fortgeschrittene
Name des Objekts, das eine NullReferenceException ausgelöst hat 
Autor: CAM-Andi
Datum: 23.01.17 13:40

Hallo,

gibt es zur Laufzeit des Release im Try-Catch-Block eine Möglichkeit den Namen des Objekts zu erfahren, das eine NullReferenceException ausgelöst hat?

Grüße Andi

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Name des Objekts, das eine NullReferenceException ausgelöst hat 
Autor: effeff
Datum: 23.01.17 13:50

So was hier? https://msdn.microsoft.com/de-de/library/system.exception.source%28v=vs.110%29.aspx

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Name des Objekts, das eine NullReferenceException ausgelöst hat 
Autor: CAM-Andi
Datum: 23.01.17 15:03

Nee, leider nicht.
Zitat:

Gibt den Namen der Anwendung oder des Objekts zurück, die bzw. das den Fehler verursacht hat, oder legt diesen fest.
In meinem Fall bekommen ich den nur den Namen meines Subs und der Klasse. Ich brauche den Namen des Objekts selbst. ZB:
Dim oFile As IO.FileInfo = Nothing
Wenn oFile eine NullReferenceException auslöst, möchte ich "oFile" zurück bekommen.

Trotzdem Danke.

Grüße Andi

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: 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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Name des Objekts, das eine NullReferenceException ausgelöst hat 
Autor: CAM-Andi
Datum: 24.01.17 11:07

Naja, das Objekt ist zwar Nothing, also nicht instanziert, aber vorhanden ist es deshalb trotzdem. Oder sehe ich das falsch?

Grüße Andi

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Name des Objekts, das eine NullReferenceException ausgelöst hat 
Autor: CAM-Andi
Datum: 24.01.17 18:14

Okay, vielen Dank.
Dann muss ich halt das pdb mit ausrollen und über die Zeilennummer aus der Exception-Message das Problem suchen.

Grüße Andi

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Name des Objekts, das eine NullReferenceException ausgelöst hat 
Autor: CAM-Andi
Datum: 25.01.17 09:14

Danke für die Hinweise. Die genannten Sachverhalte sind mir weitgehend vertraut. In meinem Fall ist es so, dass ich über ein Browser-Control auf Html-Elemente zugreife. Das Html-Element wird maschinell erzeugt. Beim Laden füge ich dynamisch noch weitere Elemente hinzu. Irgendwann später greife ich auf die Elemente wieder zu und bekommen ab und an sporadisch diese Exceptions. Ist leider nicht reproduzierbar, deshalb versuche ich im Catch-Block so viele Infos wie möglich zu bekommen, um die Problematik eingrenzen zu können. Alternativ könnte ich natürlich generell alle Html-Elemete, auf die ich zugreife auf Nothing prüfen. Vielleicht liegt die Ursache aber auch wo anders in meinem Code...

Grüße Andi

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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-2024 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