Tôi đã đọc rằng chúng ta chỉ nên nắm bắt các ngoại lệ có thể được xử lý, điều này làm cho việc bắt lớp ngoại lệ cơ sở (C # trong trường hợp này) là một ý tưởng tồi (trên hết các lý do khác). Tôi hiện đang là một phần của một dự án mà cho đến nay tôi vẫn chưa thấy gì ngoại trừ cơ sở bị bắt. Tôi đã đề cập rằng nó được coi là thực hành xấu để làm như vậy, nhưng câu trả lời là "Dịch vụ này cần chạy 24/7, vì vậy đó là như vậy."
Vì tôi không có phản hồi tốt về cách xử lý đúng các trường hợp ngoại lệ trong chương trình cần chạy 24/7, giờ tôi đã ở đây. Tôi đã không quản lý để tìm thấy bất kỳ thông tin / đề xuất nào về cách xử lý ngoại lệ trong các chương trình / dịch vụ "quan trọng" cần chạy suốt ngày đêm (và trong trường hợp này tôi tin rằng có thể ổn nếu dịch vụ ngừng hoạt động trong một phút hoặc hai, vì vậy thậm chí không quan trọng). Tôi hiểu nó phụ thuộc vào bản chất chính xác của chương trình. Các yêu cầu cho một chương trình có thể gây ra các vấn đề đe dọa tính mạng khá khác biệt so với trình quét nhật ký cho một trò chơi trực tuyến.
Hai ví dụ:
1: Dịch vụ chuyển tiếp dành cho khách hàng của đường sắt Brittish, được sử dụng khi họ tìm kiếm trực tuyến các nhà ga.
2: Một chương trình tự động điều khiển các công tắc đường sắt cho các tuyến đường sắt trên dựa trên thông tin thời gian thực được cung cấp từ các cảm biến khác nhau trong đường ray, xe lửa, v.v.
Chương trình đầu tiên có thể sẽ không gây ra vấn đề lớn nếu nó bị hỏng trong một hoặc hai phút, vì cái sau có thể gây thương vong cho con người. Gợi ý về cách đối phó với từng? Con trỏ đến nơi tôi có thể tìm thêm thông tin và suy nghĩ về vấn đề này?
catch Exception
. Điều đó không có nghĩa là chương trình của bạn hoạt động , điều đó có nghĩa là thất bại cho phép trạng thái ứng dụng bị hỏng trong khi nó tiếp tục thực thi, một nơi nguy hiểm hơn rất nhiều. Một chương trình bị lỗi có thể là thảm họa, nhưng một chương trình ở trạng thái không hợp lệ nhưng vẫn thực hiện các hành động có thể là thảm họa tích cực .