Benutzer mit den meisten Antworten
Frage zu VerificationException???

Frage
-
Hallo,
ich habe in meinem Code eine if-else Anweisung. In if-Bereich wird die Anzahl einer Liste, die als Inhalt Objekte beinhaltet, überpruft. Falls die Liste leer ist, wird dann die else-Bereich ausgeführt.
Ich bekomme aber die folgende Fehlermeldung:
VerificationException wurde nicht von Benutzercode behandelt! Dieser Vorgang kann die Laufzeit destabilisieren.
Kann jemand mir vielleicht bitte sagen, wie ich die Exception behandeln kann?
Gruesse, NUNUI
Antworten
-
Hallo Nunui,
unter normalen Umständen kann eine VerificationException nicht abgefangen werden, da die CLR nicht typsicheren Code entdeckt hat, mehr dazu findet sich unter PEVerify Tool (Peverify.exe) und Schreiben von überprüfbar typsicherem Code.
Falls Dein Code reiner C# Code (nicht unsafe) ist könnte die Ursache unter (sehr seltenen) Umständen auf einen Compiler-Fehler hinweisen. Eine weiter möglicher Verursacher wäre das Mischen von verschiedenen Framework Versionen (z. B. .NET 2.0/.NET 4.0), siehe z. B.: http://stackoverflow.com/questions/6919808/why-does-this-line-cause-a-verificationexception-when-running-under-net-4
Wenn es durch das Verlagern in eine Methode nicht mehr auftritt, prüfe bitte ob dies auch der Fall ist, wenn alle Zweige der Methode durchlaufen werden. Denn u. U. übersetzt der JITter in der jetzigen Variante den problematischen Teil nicht und die Ausnahme findet nicht statt - das könnte dann aber später passieren.
Gruß Elmar
- Als Antwort vorgeschlagen Aleksander Chalabashiev Montag, 19. Januar 2015 09:23
- Als Antwort markiert Aleksander Chalabashiev Montag, 26. Januar 2015 09:08
-
Wenn du etwas mehr Code zeigen würdest, würde es leichter gehen... :)
Wie überprüfst du denn, ob die Liste leer ist (Ich würde dazu die Count-Eigenschaft empfehlen:
if(mylist.Count == 0) { //Leer } else { //Voll }
© 2015 Thomas Roskop
- Bearbeitet Thomas Roskop Dienstag, 13. Januar 2015 18:55
- Als Antwort vorgeschlagen Aleksander Chalabashiev Montag, 19. Januar 2015 09:23
- Als Antwort markiert Aleksander Chalabashiev Montag, 26. Januar 2015 09:08
Alle Antworten
-
Hallo,
ich habe in meinem Code eine if-else Anweisung, dass in if die Anzahl einer Liste, die als Inhalt Objekte einer Klasse beinhaltet, überpruft und falls die Liste leer ist, wird dann die else-Bereich ausgeführt.
Obwohl die Liste nicht leer ist, bekomme immer die folgende Fehlermeldung:
VerificationException wurde nicht von Benutzercode behandelt! Dieser Vorgang kann die Laufzeit destabilisieren.
Weiß Jemand vielleicht, woran es liegen könnte?
Gruesse, NUNUI
- Zusammengeführt Aleksander Chalabashiev Dienstag, 13. Januar 2015 14:48 Doppelposting
-
Hallo NunuiMehr Information über Ihre Frage können Sie hier finden
Gewusst wie: Unterbrechen bei Ausnahmen, die nicht vom Benutzercode behandelt werden
exception was not handled by user code
Gruß
Aleksander
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
- Bearbeitet Aleksander Chalabashiev Montag, 19. Januar 2015 09:23
-
Danke für die Antwort!
Irgendwie mit try-catch funktioniert es nicht!
Habe aber den Teil von if-Anweisung als eine Methode definiert und in der if-Anweisung rufe dann nur die Methode auf und so funktioniert es und bekomme die Fehlermeldung nicht mehr!!!
Gruesse, NUNUI
-
Hallo Nunui,
unter normalen Umständen kann eine VerificationException nicht abgefangen werden, da die CLR nicht typsicheren Code entdeckt hat, mehr dazu findet sich unter PEVerify Tool (Peverify.exe) und Schreiben von überprüfbar typsicherem Code.
Falls Dein Code reiner C# Code (nicht unsafe) ist könnte die Ursache unter (sehr seltenen) Umständen auf einen Compiler-Fehler hinweisen. Eine weiter möglicher Verursacher wäre das Mischen von verschiedenen Framework Versionen (z. B. .NET 2.0/.NET 4.0), siehe z. B.: http://stackoverflow.com/questions/6919808/why-does-this-line-cause-a-verificationexception-when-running-under-net-4
Wenn es durch das Verlagern in eine Methode nicht mehr auftritt, prüfe bitte ob dies auch der Fall ist, wenn alle Zweige der Methode durchlaufen werden. Denn u. U. übersetzt der JITter in der jetzigen Variante den problematischen Teil nicht und die Ausnahme findet nicht statt - das könnte dann aber später passieren.
Gruß Elmar
- Als Antwort vorgeschlagen Aleksander Chalabashiev Montag, 19. Januar 2015 09:23
- Als Antwort markiert Aleksander Chalabashiev Montag, 26. Januar 2015 09:08
-
Wenn du etwas mehr Code zeigen würdest, würde es leichter gehen... :)
Wie überprüfst du denn, ob die Liste leer ist (Ich würde dazu die Count-Eigenschaft empfehlen:
if(mylist.Count == 0) { //Leer } else { //Voll }
© 2015 Thomas Roskop
- Bearbeitet Thomas Roskop Dienstag, 13. Januar 2015 18:55
- Als Antwort vorgeschlagen Aleksander Chalabashiev Montag, 19. Januar 2015 09:23
- Als Antwort markiert Aleksander Chalabashiev Montag, 26. Januar 2015 09:08