Trong một chương trình, tôi vô tình gọi số closeHandle()
hai lần trên bộ xử lý mutex (đóng chốt xử lý đã đóng).Các lỗi ngoại lệ nhất định chỉ xảy ra trong trình gỡ rối không?
Khi chạy mã trong trình gỡ lỗi, tôi đã nhận được lỗi ngoại lệ An invalid HANDLE was specified.
như mong đợi.
Tuy nhiên, chạy chương trình "bình thường" như một đứng độc lập (bên ngoài trình gỡ lỗi) ngoại lệ không xuất hiện hoặc bất kỳ lỗi nào khác. Chương trình xuất hiện để chạy bình thường.
Đây có phải chỉ là một cài đặt trong Visual Studio.NET 2003 hoặc có nhiều hơn không?
Hành vi được ghi lại là tài liệu của closeHandle(). Xem http://msdn.microsoft.com/en-us/library/ms724211%28v=vs.85%29.aspx: "Nếu ứng dụng đang chạy dưới trình gỡ lỗi, hàm sẽ ném một ngoại lệ nếu nó nhận hoặc là xử lý giá trị không hợp lệ hoặc giá trị xử lý giả. " – user168715
Có lẽ bạn đang chạy bản dựng gỡ lỗi trong VS .NET, nhưng khi nhấp đúp vào bạn đang chạy bản phát hành bản phát hành? –
Tôi đã thấy hành vi tương tự với các xác nhận. Biên dịch có điều kiện có thể làm điều đó. –