Ồ, tôi vừa lấy lại một dự án lớn trong C# từ các nhà phát triển bên ngoài và trong khi xem xét mã của tôi công cụ phân tích của tôi tiết lộ những thứ mà nó coi là xấu. Một trong những thông điệp làm nản lòng hơn nữa là:Có một lý do hợp lệ nào để bỏ qua một ngoại lệ bị bắt
Exceptions.DontSwallowErrorsCatchingNonspecificExceptionsRule : 2106 defects
Các nhà phát triển đảm bảo với tôi rằng họ có lý do chính đáng cho tất cả các khối catch trống rỗng, mà đôi khi thử với catch khối rỗng chỉ có bỏ qua ngoại lệ vô dụng và giữ cho ứng dụng từ bị rơi. Tôi cảm thấy đây là một cảnh sát và hoàn thành BS. Một số ví dụ mà tôi thực sự tìm kiếm là các cuộc gọi cơ sở dữ liệu nơi bản ghi được lưu vào cơ sở dữ liệu, và trong trường hợp này, nếu một ngoại lệ bị bỏ qua, người dùng sẽ lấy lại lời nhắc không sao, nghĩ mọi thứ đều ổn, và tiếp tục với công việc của họ. Trong thực tế, công việc của họ chưa bao giờ được cứu. Tôi nghĩ đây là loại lỗi khủng khiếp nhất. Trong trường hợp này, họ hoàn toàn sai khi ném mã đó trong một lần thử với một khối catch rỗng. Nhưng câu hỏi của tôi là, "Liệu EVER này có được chấp nhận trong mọi tình huống không?" Tôi nghĩ không, nhưng tôi đã được biết là sai.
Chính xác ... nhiều như tôi ghét nó, khi nó là cần thiết, nó ít nhất nên xác định loại ngoại lệ được dự kiến sẽ bị bỏ qua, để không bỏ qua một số lỗi mơ hồ. Và đăng nhập ở mức tối thiểu sẽ xảy ra. – stephenbayer
Bạn đang tin tưởng thư viện của bên thứ ba không quá hăng hái trong việc ném ngoại lệ. Tôi không muốn spam tệp nhật ký của mình vì phán đoán xấu của người khác. Có những ngoại lệ đối với mọi quy tắc. –
Và trong một trường hợp như Rob đã ở trên, tôi muốn giới thiệu một cái gì đó cụ thể hơn sau đó "an toàn để bỏ qua". Chú ý TẠI SAO ngoại lệ là an toàn để bỏ qua, nó sẽ không chỉ làm cho mã dễ hiểu hơn cho người khác, nó sẽ giúp bạn xuống đường khi bạn kiểm tra lại các dự án cũ. –