2010-05-06 32 views
12

Tôi đã viết một mã trong asp.net đọc dữ liệu từ tệp và vẽ biểu đồ.Một ngoại lệ không được xử lý kiểu 'System.StackOverflowException' xảy ra trong mscorlib.dll

Nó làm việc nhưng sau một thời gian khi tôi chạy chương trình, ngoại lệ này phát sinh

"Một ngoại lệ unhandled của loại 'System.StackOverflowException' xảy ra ở mscorlib.dll"

trong này tuyên bố trong mã:

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

Sử dụng tính năng định dạng của trình chỉnh sửa để chúng tôi có thể đọc mã của bạn. – mwilson

+1

Đoạn mã này bạn đã cung cấp một phần của hàm 'Deserialize()'? –

+1

phiên bản .NET nào? Ngoài ra, bạn có thể đăng theo dõi ngăn xếp không? – Paolo

Trả lời

36

Chức năng của bạn có thể gọi chính nó là đệ quy vô số lần. Đôi khi điều này xảy ra gián tiếp (bạn gọi một phương thức trong BCL và nó gọi lại mã của bạn, và điều này liên tục lặp lại). File.Exists có lẽ không phải là thủ phạm. Nhìn vào ngăn xếp cuộc gọi của bạn khi lỗi xảy ra.

+0

tuyệt vời! nhanh chóng sửa chữa – Nirman

+0

Vì vậy, cô chỉ hỏi và để lại! Câu trả lời hoàn hảo! –

Các vấn đề liên quan