none
Frage zu VerificationException??? RRS feed

  • 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

    Dienstag, 13. Januar 2015 10:43

Antworten

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

    Montag, 12. Januar 2015 20:03

  • Hallo Nunui

    Mehr 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.


    Dienstag, 13. Januar 2015 14:59
  • 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

    Dienstag, 13. Januar 2015 18:13
  • 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

    Dienstag, 13. Januar 2015 18:47
    Beantworter
  • 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


    Dienstag, 13. Januar 2015 18:55