2010-05-06 14 views
12

Ich habe einen Code in asp.net geschrieben, der Daten aus Dateien liest und ein Diagramm zeichnet.Eine nicht behandelte Ausnahme des Typs 'System.StackOverflowException' ist in mscorlib.dll aufgetreten.

Es funktionierte, aber nach einer Weile, wenn ich das Programm ausführen, diese Ausnahme

"eine nicht behandelte Ausnahme des Typs 'System.StackOverflowException' ist in mscorlib.dll aufgetreten" entstehen

in dieser Anweisung im Code:

if (File.Exists(fName)) <----(here is the exception) 
{ 
    stream = File.Open(fName, FileMode.Open); 
    g_day = Deserialize(stream); 
    stream.Close(); 
    int cn = 0; 
    if (g_day.Values.Count != 0) 
     cn = g_day.Values[g_day.Values.Count - 1].Value; 
    Label1.Text = cn.ToString(); 
} 
+0

Verwenden Sie die Formatfunktion des Editors, damit wir Ihren Code lesen können. – mwilson

+1

Ist dieses Code-Snippet ein Teil Ihrer 'Deserialize()' -Funktion? –

+1

welche Version von .NET? Können Sie den Stack-Trace auch posten? – Paolo

Antwort

36

Ihre Funktion nennt sich wahrscheinlich rekursiv unendlich oft. Manchmal geschieht dies indirekt (Sie rufen eine Methode in der BCL auf und sie ruft zurück zu Ihrem Code, und das wiederholt sich). File.Exists ist wahrscheinlich nicht der Schuldige. Sehen Sie sich Ihren Call-Stack an, wenn der Fehler auftritt.

+0

ausgezeichnet! schnelle Lösung – Nirman

+0

Also fragte sie einfach und ging! Perfekte Antwort! –

Verwandte Themen