2009-02-19 27 views
12

Một trong những điều tôi thích về VB6 là bạn có khả năng nói với môi trường phát triển để giải quyết tất cả các lỗi bất kể xử lý lỗi nào lên. Có thể làm điều tương tự trong VS2008 để trình gỡ lỗi sẽ dừng lại trên bất kỳ lỗi nào ngay cả khi nó xảy ra bên trong một câu lệnh try-catch?Bạn có thể thiết lập VS2008 để phá vỡ lỗi bên trong câu lệnh try-catch hay không

Vấn đề đặc biệt khó khăn khi bạn đang xử lý tệp có 500 bản ghi và nó không thành công trên một trong số chúng - ai biết cái nào - Bạn không muốn sửa đổi mã sao cho bộ đếm của bạn được khởi tạo bên ngoài mà cho vòng lặp - đó là cẩu thả lâu dài. Bạn chỉ muốn trình gỡ rối biết dừng lại vì một số cài đặt bạn đặt ở đâu đó.

Trả lời

22

Vâng, vào "Debug" menu, chọn "Exceptions ...", hãy kiểm tra "Ném" cho "Common Language Runtime Exceptions"

+1

Bạn đánh bại tôi trong vài giây =) – juan

7

Chắc chắn, nhấn Ctrl-Alt-E để đưa lên cửa sổ ngoại lệ và đánh dấu vào ô kiểm tra Được đánh dấu về Ngoại lệ thời gian chạy ngôn ngữ phổ biến

Điều đó sẽ ngừng thực thi, mở mã nguồn của trường hợp ngoại lệ, và cho bạn biết cửa sổ thông báo lỗi là gì, trỏ vào dòng đó ném.

3

Trong Visual Studio, bạn có thể vào Debug -> Exceptions ... và đánh dấu vào hộp kiểm cho bất kỳ ngoại lệ cụ thể hoặc một lớp ngoại lệ bạn muốn VS ngắt khi được tạo.

Có năm loại ngoại lệ - C++, Thời gian chạy ngôn ngữ chung, Trình quản lý gỡ lỗi được quản lý, Kiểm tra thời gian chạy gốc và Win32. Đối với hầu hết các phần bạn quan tâm đến những người CLR, mặc dù nếu bạn đang làm COM interop, bạn có thể muốn một số người khác là tốt.

4

Tôi phát hiện ra hộp kiểm mà mọi người đang nói đến trong khi gỡ lỗi dự án tại nơi làm việc một lần. Tôi bật nó lên và đột nhiên tôi nhận được tất cả những ngoại lệ này ném khắp nơi! Hóa ra dev của một nhóm khác đã sử dụng Try-Catch làm mặt nạ cho các điều kiện có thể phòng ngừa dễ dàng (nhưng quá lười để tự bẫy). XẤU!

+0

+1 vì điều đó thật thú vị nhưng không phải vậy. Tôi đã tự mình gặp phải điều này. Không vui. – Kibbee

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