2012-04-30 23 views
8

Tôi nhận được ngoại lệ được ném từ đâu đó, nhưng tất cả những gì tôi nhận được từ trình biên dịch là "Ngoại lệ cơ hội đầu tiên của loại 'System.ArgumentOutOfRangeException' xảy ra trong mscorlib.dll". Điều này là khá vô dụng đối với tôi, vì đó không phải là mã của tôi (khá chắc chắn đó là thư viện mặc định). Tôi muốn nhìn thấy một đống dấu vết hoặc một cái gì đó vì vậy tôi biết nơi trong mã của tôi những điều đã đi sai. Đó là một codebase khá lớn (phần lớn không phải của tôi), và có rất nhiều luồng đa luồng và những thứ khác đang diễn ra, vì vậy gần như không thể thử và bước qua mã mà không có ý tưởng bắt đầu tìm kiếm ở đâu. Có một số thiết lập ở đâu đó để làm cho TẤT CẢ ngoại lệ kích hoạt một break để tôi có thể nhìn thấy các cuộc gọi ngăn xếp khi chúng xảy ra, thay vì chỉ có họ âm thầm thất bại với một thông báo lỗi hoàn toàn vô dụng trong đầu ra?Nhận số dòng ngoại lệ cơ hội đầu tiên

+0

Bạn có thể thấy chồng khi ngoại lệ được ném vào chế độ gỡ lỗi. – SimpleVar

+6

Nếu bạn đang ở trong phòng thu trực quan, hãy thử 'Trình đơn gỡ lỗi> Ngoại lệ 'và kiểm tra tất cả các ngoại lệ bạn muốn chia nhỏ. – gcochard

+0

@ Darrel Bạn thực sự nên chấp nhận câu trả lời cho câu hỏi của bạn, ngay cả khi bạn trả lời câu hỏi của riêng bạn. Mọi người sẽ sẵn lòng giúp bạn theo cách đó. –

Trả lời

16

Bạn có một vài tùy chọn. Thứ nhất, như Greg nói, bạn có thể gây VS để phá vỡ khi bất kỳ ngoại lệ xảy ra:

enter image description here

Hãy chắc chắn rằng chúng được kiểm tra, sau đó nhấn OK:

enter image description here

Điều đó sẽ gây ra Visual Studio để phá vỡ bất cứ nơi nào ngoại lệ xảy ra.

cách tiếp cận khác là để nắm bắt những ngoại lệ và thể viết chỉ stack trace, hoặc viết các ngoại lệ (sử dụng ToString()) vào cửa sổ đầu ra:

enter image description here

Sau đó kiểm tra cửa sổ đầu ra của bạn:

enter image description here

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