Trường hợp cụ thể của tôi ở đây là người dùng có thể chuyển một chuỗi vào ứng dụng, ứng dụng phân tích cú pháp và gán nó cho các đối tượng có cấu trúc. Đôi khi người dùng có thể gõ một cái gì đó không hợp lệ. Ví dụ, đầu vào của họ có thể mô tả một người nhưng họ có thể nói tuổi của họ là "quả táo". Hành vi đúng trong trường hợp đó là khôi phục giao dịch và để báo cho người dùng biết đã xảy ra lỗi và họ sẽ phải thử lại. Có thể có một yêu cầu để báo cáo về mọi lỗi chúng ta có thể tìm thấy trong đầu vào, không chỉ đầu tiên.
Trong trường hợp này, tôi lập luận rằng chúng ta nên ném một ngoại lệ. Anh ấy không đồng ý, nói: "Trường hợp ngoại lệ nên là ngoại lệ: Dự kiến người dùng có thể nhập dữ liệu không hợp lệ, vì vậy đây không phải là trường hợp ngoại lệ" Tôi thực sự không biết làm thế nào để tranh luận về điểm đó, bởi vì theo định nghĩa của từ, anh ấy có vẻ đúng
Nhưng, đó là sự hiểu biết của tôi rằng đây là lý do tại sao Ngoại lệ được phát minh ngay từ đầu. Nó đã từng là bạn đã kiểm tra kết quả để xem nếu một lỗi xảy ra. Nếu bạn không kiểm tra, những điều tồi tệ có thể xảy ra mà bạn không nhận ra.
Không có ngoại lệ, mọi cấp độ của ngăn xếp cần kiểm tra kết quả của các phương thức mà chúng gọi và nếu lập trình viên quên kiểm tra một trong các cấp này, mã có thể vô tình tiến hành và lưu dữ liệu không hợp lệ (ví dụ). Có vẻ nhiều lỗi dễ dàng theo cách đó.
Dù sao, hãy thoải mái để sửa bất cứ điều gì tôi đã nói ở đây. Câu hỏi chính của tôi là nếu ai đó nói Ngoại lệ phải là ngoại lệ, làm sao tôi biết trường hợp của tôi là ngoại lệ?